css盒子模型

223 阅读2分钟

所有HTML元素可以看作一个盒子,包括margin(外边距)、border(边框)、padding(内边距)和content(文本和图像等实际内容)。

border-color属性用于设置边框的颜色,border-style属性用来定义边框的样式,border-width 属性用于设置边框的宽度。border属性可简写,一般顺序为border:color style width,也可通过border-方向值设置单一方向的边框样式。

单独使用padding属性可以元素的上,下,左,右内边距,也可以一次改变所有的属性。padding属性可以有一到四个值,“padding:25px 50px 75px 100px; ”表示上内边距为25px、右内边距为50px、下内边距为75px、左内边距为100px,“padding:25px 50px 75px;”表示上内边距为25px、左右内边距为50px、下内边距为75px,“padding:25px 50px;”上下内边距为25px、左右内边距为50px,“padding:25px;”表示所有的4个内边距都是25px。padding取值记忆规则:从上开始赋值,然后顺时针赋值,如果没有赋值的,看对面的!

margin属性取值和记忆规则参照padding属性。注意点1:垂直布局的块元素,上下的margin会合并,最终结果为两者距离的最大值,此时只用给其中一个盒子设置即可。注意点2:互相嵌套的块元素,子元素的margin-top会作用在父元素上,导致父元素一起向下移动,解决方法有以下4个:(1)给父元素设置border-top或者padding-top(分隔父子元素的margin-top),(2)给父元素设置overflow:hidden,(3)使用display属性将子元素转换成行内块元素,(4)给子元素设置浮动。

给盒子设置width和height属性默认为content的宽高,设置border和padding后,此时盒子的实际宽高需分别再加上上下和左右border和padding值。可以设置box-sizing:border-box来固定盒子的实际宽高,此时width和height即为盒子的实际宽高,content的宽高会根据border和padding值自动内减。

给行内元素设置margin和padding时,水平方向的margin和padding布局中有效,垂直方向的margin和padding布局中无效。img虽然是行内元素,但是具有行内块元素的特点,不适用此类情况。