为什么要继承大小为长方体的css reset而不是将其直接应用于所有元素



我在一个教程中看到了这个调整大小的CSS重置技巧,我也读了一些关于它的文章,但我不明白为什么它会以这种方式完成,而不仅仅是应用于通用选择器。例如,为什么这样:

html {
box-sizing: border-box;
}

*,
*:before,
*:after {
box-sizing: inherit;
}

理论上,如果我理解正确,它应该做同样的事情,而不是仅仅在第二部分设置border-box属性并删除html选择器。每个选择器和伪元素都将应用边界框属性

什么

html {
box-sizing: border-box;
}
*,
*:before,
*:after {
box-sizing: inherit;
}

意思是html元素具有box-sizing:bborder-box,然后所有元素都将继承其父元素的box-sizing。

所以,如果你喜欢"从一开始",每个元素都会从html的设置中继承框大小,因为没有人告诉它任何不同。

但假设你有

.mydiv {
box-sizing: content-box;
}

带有HTML

<div class="mydiv">
<header>some text...
</header>
</div>

您希望header元素的框大小是多少?

上面继承的设置是说"我希望标头从其父项继承其框大小",这就是内容框。

如果我们在一开始就把所有东西都设置为border-box,它就不会继承,它会使用它设置的border-box。

最新更新