我想,计划是停止使用“元素查询”,并开始思考和将它们称为“容器查询”。 我们一直在 关注这个故事 一段时间了。 元素查询有一个严重的缺陷:无限循环。
.our-element:media(min-width: 500px) {
width: 499px;
}
正如响应式问题社区组成员 Mat Marquis 所说
好吧,由于查询不再匹配,因此不再应用新宽度。 由于从未应用过新宽度,因此元素查询将再次匹配,因此将应用新宽度,因此查询将不再匹配,因此不会应用新宽度,依此类推,无限循环。 我们仅仅用几行 CSS 就实现了 TARDIS 级别的悖论,而且浏览器没有可预测的方式来处理它。
Jon Neal 实际上有一些关于 浏览器如何处理这个问题 的想法
无限循环将在出错的块处冻结。 虽然无限循环更有可能发生在元素媒体查询中,但这个问题自
:hover
以来就一直存在。 因此,一个明确的规范将是双倍有用的。
但唉,也许将查询强制到父元素上会有所帮助
… 我们需要重新构建我们谈论潜在解决方案的方式。 由于解决方案不能允许元素自行重新设置样式,因此我们可以将此约束构建到规范中:附加到元素的查询只能影响该元素的子元素的样式。
我认为它并没有完全解决无限循环问题,但以某种方式更容易处理?