基础概念:
margin(外边距):元素外边的空白区域,被称为边距/边界,透明的
border(边框):围绕在内边距和内容外的边框
padding(内边距):清除内容周围的区域,内边距是透明的,用于控制content与border之间的距离
content(内容):盒子的内容,显示文本和图像
盒子模式由内容、边框、内边距、外边距组成
盒模型有两种标准:W3C标准模型和IE模型
两者都是由margin+border+padding+content组成的,主要区别为,IE模型的content包含了padding和border,而标准模型的content则不包含,由于这个区别,在计算盒子模型的宽高时,两种模型的宽高计算方式也不同
W3C标准模型的盒宽高计算:width(或者height) = margin*2+border*2+padding*2+width(content);
IE模型的盒宽高计算:width(或者height) = margin*2++width(content);
W3C标准盒模型的宽高计算方式为:width/height = content,IE盒模型的宽高计算方式为:width/height = content + padding + border。
box-sizing 属性允许您以特定的方式定义匹配某个区域的特定元素。
语法:
box-sizing: content-box|border-box|inherit;
值 | 描述 | 个人理解 |
content-box | 这是由 CSS2.1 规定的宽度高度行为。 宽度和高度分别应用到元素的内容框。 在宽度和高度之外绘制元素的内边距和边框。 | =标准盒模型 |
border-box | 为元素设定的宽度和高度决定了元素的边框盒。 就是说,为元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。 通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。 | =IE盒模型 |
inherit | 规定应从父元素继承 box-sizing 属性的值。 |