在进行网页布局时,我们一定离不开盒模型,接下来开始学习什么是盒模型
01什么是盒模型?
css盒模型(BoxModel),在html中任何一个元素都可以看作盒子,这里说的盒子与现实不太一样,css中盒子是二维的,盒子由内到外分四个部分:margin(外边距)、border(边框)、padding(内边距)、content(内容)。css通过margin、border、padding三个属性来控制盒子,content是html元素的内容。
02属性介绍
marginmargin是盒子的外边框,包含了上下左右四条边,开发者可以单独设置,也可以统一设置。margin-top:上边距margin-right:右边距margin-bottom:下边距margin-left:左边距代码示例1:/*margin属性后只跟1个值,同时设置四条边的边距相等*/margin:10px;/*上面的样式等同于下面的样式*/margin-top:10px;margin-right:10px;margin-bottom:10px;margin-left:10px;代码示例2:/*margin属性后跟2个值,第一个值设置上下边距,第二个是设置左右边距*/margin:20px10px;/*上面的样式等同于下面的样式*/margin-top:20px;margin-right:10px;margin-bottom:20px;margin-left:10px;代码示例3:/*margin属性后跟3个值,第一个值设置上边距,第二个是设置左右边距,第三个值设置下边距*/margin:20px50px10px;/*上面的样式等同于下面的样式*/margin-top:20px;margin-right:50px;margin-bottom:10px;margin-left:50px;代码示例4:/*margin属性后跟4个值,第一个值设置上边距,第二个是设置右边距,第三个值设置下边距,第四个值设置左边距*/margin:10px20px30px40px;/*上面的样式等同于下面的样式*/margin-top:10px;margin-right:20px;margin-bottom:30px;margin-left:40px;paddingpadding表示盒子内边距,与外边距不同,padding不是只能完全透明,可以设置背景颜色和图片。padding也包含了上下左右四个方向边距,可以单独设置,也可以简写设置,与上面margin类似,可参考margin的4个代码实例。borderborder表示盒子的边框,允许设置多种样式和颜色,与margin类似,可以对四个方向边框分别设置,也可简写。border-top:上边框border-right:右边框border-bottom:下边框border-left:左边框设置边框时,可以分别对边框的宽度、样式和颜色进行设置。分别为:border-width:边框宽度border-style:边框样式border-color:边框颜色边框属性进行简写时:border:宽度样式颜色。如:border:5pxsolidred。border实例1:border:5pxsolidred;/*上边的简写相当于下面分别设置*/border-width:5px;border-style:solid;border-color:red;border-style属性值及意义:none:无边框hidden:与none相同,hidden用于解决边框冲突。solid:实线。dashed:虚线。double:双线。dotted:点状边框。groove:定义3D沟槽边框。ridge:3D脊边框。inset:3D嵌入边框。outset:3D突出边框。边框实例2:/*边框使用简写时,表示四条边框的宽度、样式及颜色完全相同*/border:2pxsolidgreen;/*上边的样式等同于下面的样式*/border-top:2pxsolidgreen;border-right:2pxsolidgreenborder-bottom:2pxsolidgreenborder-left:2pxsolidgreen边框实例3:/*边框使用简写时,表示四条边框的宽度、样式及颜色完全相同*/border-top:2pxsolidgreen;/*上边的样式等同于下面的样式*/border-top-width:2px;border-top-style:solidborder-top-color:green
03盒子大小
盒子的大小指的是盒子的宽度和高度。默认情况下width和height属性只是设置了content部分的宽高,盒子实际的宽和高按下面公式计算:
实际宽度=width+margin-left+padding-left+border-left+border-right+padding-right+margin-right;
实际高度=height+margin-top+padding-top+border-bottom+border-bottom+padding-bottom+margin-bottom;
上边说的是默认情况下的计算方法,另一种情况下,width、height设置的就是盒子的宽高。盒子的宽高是由box-sizing属性控制的,box-sizing属性值:
content-box:默认值,width,height设置的内容宽高,不包含内外边距和边框。border-box:设置的width、height包含了边框和内边距,真正的元素高度需要减去边框和内边距才能得到。inherit:继承父级的box-sizing属性值。属性值为content-box时,这种盒子称为标准盒子模型,为border-box时,盒子称为IE盒子模型。