2019 年 CSS 愿望清单

Avatar of Chris Coyier
Chris Coyier on

DigitalOcean 提供适用于您旅程中每个阶段的云产品。立即开始使用 $200 免费信用额度!

您希望 CSS 可以原生实现哪些现在还无法实现的功能?首先,让我们回顾一下 我们上次在 2013 年做这件事的时候

  1. ❌ “我希望能够根据元素是否包含另一个特定选择器来选择元素”
  2. ❌ “我希望能够根据元素包含的内容来选择元素”
  3. ❌ “我希望有多个伪元素”
  4. ❌ “我希望能够将某个元素动画/过渡到 height: auto;
  5. ❌ “我希望有 Sass 的功能,比如 @extend@mixin 和嵌套”
  6. ❌ “我希望有 ::nth-letter::nth-word 等”
  7. ✅ “我希望所有主要浏览器都能自动更新”

哎哟,好吧。我不确定这些功能是否真的有那么受欢迎,或者它们是否真的可以实现。它们只是我认为在 2013 年可能很有用的想法,事实证明,我现在仍然觉得它们有用。

这一次,我们不自己列出愿望,而是去网上看看其他人整理的 CSS 愿望清单。

TLDR 清单

在观察了人们对 CSS 愿望的讨论来源后,这些似乎是最常见的请求

  • 父查询。即,以任何方式选择一个元素,然后选择该元素的父元素。我们有一些证据表明,使用 :focus-within 可以实现这一点。
  • 容器查询。当元素本身处于特定条件下时,选择该元素。
  • 表单元素的标准化样式。
  • Has/Contains 选择器。
  • auto 尺寸过渡。
  • 视窗单位处理的改进。

值得注意的是,让我感到有趣的是,人们很少要求样式 *作用域*。它出现过几次,但不多。它似乎是 CSS-in-JS 讨论 中的重要组成部分,所以我很惊讶在关于“CSS 需要什么”的普遍讨论中很少提及它。

Jen Simmons 询问了我们的愿望清单

该话题下值得注意的回复

  • 纵横比(它 在 CSS 中非常棘手,可能 会添加到 HTML 中,也许有一天我们会通过一个属性在 CSS 中原生获得它)
  • 排除
  • 区域
  • 子网格 (即将推出!)
  • text-wrap: avoid-widows-and-orphans
  • 嵌套
  • 带圆角的轮廓
  • 动画背景渐变(无需通过移动它们或其他方式来伪造)
  • text-overflow:ellipsis 在多行上 / 行截断
  • 从 0 到 auto 的过渡
  • 父选择器
  • 异步 @import
  • 数学函数,例如 sqrt()sin()cos()
  • font-min-sizefont-max-size
  • 砌体

Tab Atkins 想知道 CSS 中哪些部分让我们最头疼

该话题下值得注意的回复

  • 人们强烈要求以标准化方式对表单元素进行样式化 - 不仅是为了样式设计,而且是为了可访问性,以防止为样式牺牲标准。
  • 能够使用 @supports 测试对除属性/值以外的其他内容的浏览器支持
  • 改进视窗单位处理及其与其他浏览器 UI 的关系
  • 改进对多列布局处理的处理
  • 弹性滚动

Tommy Hodgins 在 Twitter 上做了一个 CSS+JS 圣诞日历,记录了一些有趣的功能

Tommy 的清单

  • 父选择器
  • Has 选择器
  • Closest 选择器
  • 文档中的第一个元素(就像 querySelector 的工作方式一样)
  • 兄弟选择器
  • 前一个兄弟选择器
  • Contains 选择器
  • 正则表达式选择器
  • 计算后的样式选择器
  • :nth-letter / :nth-word
  • 媒体伪选择器
  • 非空白的有效/无效选择器
  • 元素查询
  • 属性比较选择器
  • 自定义特异性
  • 可见性选择器
  • 溢出检测选择器
  • 用户代理检测选择器
  • 存储查询
  • 日期查询
  • 协议查询
  • 深度悬停

我们也询问过

该话题下值得注意的回复

  • 容器查询
  • Has 选择器
  • 区域
  • 颜色修改函数
  • 嵌套
  • 着色器
  • auto 尺寸过渡 / 从 display: none; 过渡
  • 前一个兄弟选择器
  • font-size: fit;
  • grid-template-areas 进行样式化
  • grid-template-areas 之间进行动画
  • 自定义属性的类型
  • clip-path 接受路径
  • inline-styles: ignore;
  • 纵横比
  • 作用域
  • // 单行注释
  • 角形