CSS盒式模型的宽度设置有两种模式:
width = 内容宽度;
实际总宽度 = width + padding + border;
这种情况下设置了width后,内容宽度不变,调整padding和border会使得div的实际总宽度变化;
width = 实际总宽度;
width = 内容宽度 + padding + border;
这种情况下设置了width后,div总宽度不变
这个是通过设置css属性box-sizing来控制的。
W3CSchool中是这样定义的:
box-sizing 属性允许您以特定的方式定义匹配某个区域的特定元素。
例如,假如您需要并排放置两个带边框的框,可通过将 box-sizing 设置为”border-box”。这可令浏览器呈现出带有指定宽度和高度的框,并把边框和内边距放入框中。
语法
box-sizing: content-box|border-box|inherit;
值 | 描述 |
---|---|
content-box | 这是由 CSS2.1规定的宽度高度行为。宽度和高度分别应用到元素的内容框。在宽度和高度之外绘制元素的内边距和边框。 |
border-box | 为元素设定的宽度和高度决定了元素的边框盒。就是说,为元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。 |
inherit | 规定应从父元素继承 box-sizing 属性的值。 |