根据这篇文章的说法,我们应该遵循以下做法:
html { box-sizing: border-box; }
*, *:before, *:after { box-sizing: inherit; }
但我认为这个更正确:
*, *::before, *::after { box-sizing: border-box; }
由于*包含html,伪元素前面是::而不是与伪类相对应的:。
我是否正确地将规则应用于整个文档?我不想在任何地方使用content-box
。
inherit
可能更好的评论:https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ - jspcalcontent-box
,那么inherit
更好。但是,如果你不想使用它呢?如果你总是想使用border-box
呢? - CSSAskerinherit
,那么当你在某个子容器级别更改它时,所有内部节点都会继承新值。 - mccambridgeborder-box
(从不使用content-box
)呢? - CSSAsker* { box-sizing: border-box; }
。 "规范"答案试图以优雅的方式涵盖最灵活的用例。 如果您确定始终使用border-box
,那么就使用*
。 在 CSSTricks 上不会看到它被炫耀。 但是,如果它适合您,请不要受传统约束。 话虽如此,您会发现传统通常是您的朋友。 如果某件事是传统的,那么很可能有很好的理由。 - mccambridge