现实生活中的现代 CSS

从任何角度来看,近年来 CSS 都取得了显著的进步。它拥有了更多实用功能,浏览器之间的互操作性得到了改进,并且随着 CSS 逐渐成为一个摆脱各种奇技淫巧和怪癖的统一系统,学习它也变得更加简单。

但真正重要的是现实世界——真正的网站,以及它们对我们制作的事物和使用它们的人们的实际影响。

效果确实显而易见。

虽然这一切都很美妙,但实际上,我对 CSS 的热情来自以下“科学”数据:

饼图:
CSS 在网站中的使用比例
你觉得 WordPress 规模大?看看 CSS 吧,哈哈。

接下来,让我们看看五个对现实世界开发真正重要的 CSS 新特性。


逻辑属性与布局

首先,让我们从一个实际案例入手,看看这篇文章的布局:

截图展示了 Safari 浏览器中打开的文章页面。页面设计以一张全屏照片为主,标题和副标题被安置在左下角。顶部黑色横条内有 CNN 的红色 logo 和 Twitter、Facebook 的图标。

📰 -> “I Just Wanna Surf”
作者:Leah Asmelash,摄影:Gabriella Angotti-Jones

设计非常精美。这篇文章是那种经过“艺术指导”的特别设计内容,脱离了新闻网站的普通模板。它通常用于那些需要额外关注(以及更多流量)的特别文章,效果显然很不错。

设计师和开发者为这篇文章付出了努力 👩🎨。整体效果很好,排版优雅,响应式设计也到位。

第二张截图展示了该文章在 iPhone 14 Pro Max 模拟器中的效果:图片缩小至页面顶部的三分之一,标题和正文内容在其下方。

我们已经进入响应式设计的时代十多年了,看到这样的文章能顺利调整到移动友好的布局,真令人欣慰。

不过,即使如此,我们仍能发现一些 CSS 可以用更新的方法替代,从而带来切实的好处,或者至少能让我借此机会阐明 CSS 的几个要点。


CSS 逻辑属性示例

在大屏幕设备上,常见的做法是将内容区域居中。通过限制内容的行宽使其易于阅读,这是一种不错的选择。以下是一种常见的实现方法:

header {
  max-width: 64rem;
  margin-left: auto;
  margin-right: auto;
  height: 100vh;
}

注意,这里使用了视口单位设置 height 值,定义了文章的头部区域。设计师希望用户进入文章时能先看到一张大照片,标题则放在左下角。

下面是一个使用逻辑属性实现同样效果的版本:

header {
  max-inline-size: 64rem;
  margin-inline: auto;
  block-size: 100dvh;
}

与前者效果相同,但逻辑属性使用了更符合逻辑的命名方式:

  • max-inline-size 替代 max-width,根据文本流动方向限制元素大小。
  • block-size 替代 height,表示垂直方向的尺寸。
  • margin-inline 为水平两侧的简写,简化了代码。

逻辑属性核心概念

  • inline:文本流动的方向(通常是水平的)。
  • block:与文本流动方向垂直的方向(通常是垂直的)。

例如,以下是一些逻辑属性与传统属性的对比:

传统属性 对应的逻辑属性
width inline-size
right inset-inline-end
margin-left margin-inline-start
overflow-x overflow-inline
resize: horizontal resize: inline
text-align: right text-align: end

逻辑属性通过一致的命名方式,更加直观且易于理解,特别是在多语言场景中尤为重要。例如:

  • 使用 margin-inline-end 可以确保按钮在从左到右(LTR)和从右到左(RTL)语言环境下的布局一致。
  • 传统的硬编码值可能导致翻译后的页面看起来不对劲,而逻辑属性可以动态适配。

改进后的案例

通过逻辑属性改写文章头部的布局代码:

.article-header {
  position: absolute;
  max-inline-size: 50%;
  inset-block-end: 1rem;
  inset-inline-start: 1rem;
  text-align: start;
}

这样,当页面被翻译成 RTL 语言(如阿拉伯语)时,文本会自动调整到更合适的位置,例如右下角,而不是继续对齐到左侧,从而带来更好的用户体验。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容