认识盒模型

盒模型是用来表示每一个元素所占用空间的大小。由4个区域组成,分别是内容区域、内边距区域、边框区域、外边距区域。这些区域分别对应了5个属性:css

  • widthheight,宽度和高度
  • padding内边距
  • border边框
  • margin外边距

代码演示:spa

div{
  border:1px solid red;
  height:200px;
  width: 200px;
  padding: 40px;
}

效果图:code

111.png

上面虽然指定了widthheight200px,但实际上它的宽高是282px * 282pxblog

这是由于盒模型是content-box,它的宽高就是实际内容的宽高。增长内边距和边框不会影响内容区域的尺寸,但会增长元素的总尺寸。开发

使用content-box写样式时,不太符合人类理解,通常会经过设置box-sizing来改变它的盒模型。rem

使用border-box,它的宽高就是元素的尺寸,也是内容区域宽高+内边距+边框。改变border或者padding的大小会影响内容区的大小。it

代码演示:class

div {
  box-sizing: border-box;
  border:1px solid red;
  height: 200px;
  width: 400px;
  padding: 40px;
}

效果图:im

123.png

从这个效果图中能够看到,元素总的宽高是400px * 200px,它的内容区域是318px。内容区域+内边距+边框正好为400pxd3

上面说到使用border-box人类理解。

这是由于,在实际开发中,若是你要保证元素实际占有的宽高不变,就要在写width时减去padding,写padding时减去width。由于改变元素的实际大小每每是灾难性的。

相关文章
相关标签/搜索