Bootstrap 默认为所有元素设置了 border-box 盒模型:
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
*:before,
*:after {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
如果您想要覆盖这个设置,只需在您的网站中保证您的自定义CSS文件在引用BootStrap之后,并将其设置回默认的content-box
即可:
* {
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
}
*:before,
*:after {
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
}
看看这个代码片段:https://jsfiddle.net/movs6gw0/1/
我添加了BootStrap的CSS文件作为资源,如果您检查我放在
标签中的内容,您将会注意到BootStrap对*
(所有)元素的border-box样式已被我上面的样式覆盖。
CSS是“层叠的”,意味着您声明的任何样式都可以被CSS文件/文档中后面声明的同样样式所覆盖。除非绝对必要,否则不需要使用!important
, 在我看来,那与CSS哲学相悖。
接下来看一个例子:https://jsfiddle.net/av4jbyt6/
<p>
Test content
</p>
CSS:
p {
color: white;
}
p {
color: red;
}
上述两种样式引用了相同的元素(p
),但是最终样式覆盖了之前的样式,因为它在链条的下方...