查看 Web Almanac 中关于 CSS 的章节后的想法

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费额度!

哇,我没想到会这样!HTTP Archive 发布了这份名为 Web Almanac 的大型“网络现状”报告,邀请客座作者探索来自 580 万个网站的数据。

Una Kravetz 和 Adam Argyle 撰写了 CSS 章节。其目的是从大量数据中提取易于理解的见解。所以,我在这里分享我对这一章节的想法,以期更快速地阅读,这本身也具有一定的讽刺意味,但无论如何,让我们开始吧。

  • **83% 的网站使用了 rgba(),但只有 22% 使用了 rgb()。**在我看来,这完全说得通,因为如果您问我,rgb() 并不是一个特别有用的颜色格式。正是“a”(alpha)赋予了该格式控制透明度的能力,而这种能力直到最近才在最流行的格式十六进制中以 8 位十六进制代码 的形式可用。但即使这样,它也不如 rgba() 好用。hsla() 可以说是最好的颜色格式。
  • **白色和黑色毫无疑问是最流行的两种命名颜色。**我经常使用它们,而且是直接使用名称。我甚至会修改 CSS 提交,使用 white 代替 #FFF,使用 black 代替 #000,因为我认为这样可以减少认知负担。
  • **em 的流行度是 rem 的两倍。**哇。我自己更喜欢 rem,因为它不太挑剔,而且更易预测。理论上,我仍然喜欢 根元素使用 px,组件使用 rem,文本元素使用 em 的想法,但我并不确定自己是否曾干净利落地实现过。
  • **类是选择器类型中当之无愧的领导者。**考虑到使用数量,它们比其他任何选择器都领先 10 倍以上。我很高兴看到这一点。它们具有低但不至于太低的特异性值。它们拥有用于操作它们的良好 API。它们的全部用途就是充当样式挂钩。它们与元素无关。这正是进行样式设置的正确方法。样式越扁平,遇到的麻烦就越少。更让我惊讶的是,每个元素的平均类数为 1。不过,我真的很想知道小数部分。是 1.1?1.4?1.00001?
  • **天啊。Flexbox 用于一半的网站,而 Grid 仅用于 2%?!**浏览器支持并没有那么大区别。我非常清楚它们都非常有用,可以一起使用,并且用于不同的目的,但我发现 Grid 通常更有用,并且个人使用它的频率比 Flexbox 高。
  • **我原本以为网站上加载字体的中位数平均值为 0,但实际上是 3!**我认为 CSS-Tricks 只有一个(在撰写本文时是 Rubik,仅用于标题。本网站的正文字体是 system-ui。)但实际上是 4,因为预加载、子集以及粗体与常规字体等。我想知道可变字体何时会开始产生影响。我认为它会随着时间的推移降低这个数字。Open Sans 和 Roboto 的使用频率是其他任何加载字体的三倍,整个列表都是 Google 字体,除了 Font Awesome 的一些实例。
  • **有趣的是,一些主要的库可以在全球/通用范围内扭曲某些功能的使用统计数据。**我记得 YouTube 的播放按钮过去是如何使用名为 SMIL 的 SVG 技术“变形”为暂停按钮的。但由于 YouTube 的规模非常庞大,因此看起来互联网流量中有很大一部分包含 SMIL,而实际上只是一些网站上单个按钮。filter 也出现在了报告中。虽然滤镜很酷,但实际上它恰好位于 YouTube 嵌入和 Font Awesome 的样式表中,因此使用它的网站比例(78%)看起来非常惊人。
  • **在大量使用过渡和动画的页面中,过渡的使用频率大约是动画的两倍,但过渡在第 50 个百分位数的使用频率是动画的六倍。**在我看来,这感觉很合理。过渡通常更有用,但是动画越多,您就越需要使用高级工具,例如关键帧。
  • **看起来大多数网站大约有 45 个媒体查询。**目前尚不清楚这些是不同的媒体查询,还是在样式表中的其他位置重复的相同媒体查询。如果它们都是不同的,那似乎有点多,因此我怀疑这只是一个工具问题,人们使用嵌套媒体查询来提高编写清晰度,它们会冒泡出来,但不会合并,因为这在特异性方面太奇怪了。我很想知道人们使用了多少个唯一的媒体查询。对我来说,媒体查询数据最引人入胜的一点是 min-widthmax-width 的使用率不相上下。如果让我猜测,我会认为 max-width 会远远领先。
  • **每个网站大约有 6 个样式表。**这可能很难判断,因为此类资源通常托管在 CDN 上,但我真的很想知道有多少是为网站手动编写的,有多少来自第三方。分配比例是 3 比 3 还是 1 比 5?

报告 中还有更多内容,而 CSS 只是 20 个章节中的一个。所以,快去挖掘吧!