一个盒子模型分成几部分:
- 内容区(content)
- 内边距(padding)
- 边框(border)
- 外边距(margin)12345
内容区
内容区:盒子中放置内容的区域,也就是元素中的文本内容,子元素都是存在于内容区中的。
如果没有元素设置内边距和边框,则设置内容大小偶人和盒子大小一致123
通过width 和height 两个属性可以设置内容的大小1
width 和height属性值适合用于块元素1
内边距
内边距:元素内容区与边框以内的空间1
默认情况下width和height不包含padding的大小
12
使用padding属性来设置元素的内边距
举例:
-padding:10px 20px 30px 40px
这样会设置元素的 上,右,下,上 四个方向的内边距。(按照顺时针方向)
padding:10px 20px 30px
分别指定 上,左右,下 四个方向的内边距
padding:10px 20px
分别指定上下,左右四个方向的内边距
padding:10px
分别指定 上左下右 四个方向的内边距
同时在CSS中还提供padding-top padding-right padding-left padding-bottom1234567891011121314
边框
可以在元素周围创建边框,边框是元素可见的最外部1
可以使用border属性来设置盒子的边框:
-border:1px red solid
上边的样式分别指定了边框的 宽度 ,颜色,样式123
也可以使用border-top/left/right/bottom分别指定 上右下左 四个方向的边框
和padding一样,默认width 和height 并包括边框的宽度123
边框样式
边框样式可以设置多种样式:
-none(没有边框)
-dotted(点线)
-dashed(虚线)
-solid(实线)
-double(双线)
-groove(槽线)
-ridge(脊线)
-inset(凹线)
-outset(凸线)1234567891011
外边距
外边距是原素边框与周围元素相距的空间1
使用margin属性可以设置外边距1
用法和padding 类似,同样也提供了四个方向的
margin-top/right/bottom/left12
当将左右外边距设置为auto时,浏览器会将左右外边距设置为相等,所以这行代码 margin:0 auto 可以使元素居中
1
margin 在一个声明中设置所有外边距属性。
margin-top设置元素的上外边距。
margin-bottom 设置元素的下外边距。
margin-left设置元素的左外边距。
margin-right 设置元素的右外边距。
在“CSS盒子模型”理论中,所有页面中的元素都可以看成一个盒子,并且占据着一定的页面空间。
一个页面由很多这样的盒子组成,这些盒子之间会互相影响,因此掌握盒子模型需要从两个方面来理解:一是理解单独一个盒子的内部结构,二是理解多个盒子之间的相互关系。
每个元素都看成一个盒子,盒子模型是由content(内容)、padding(内边距)、margin(外边距)和border(边框)这四个属性组成的。此外,在盒子模型中,还有宽度width和高度height两大辅助性属性。
记住,是所有的元素都可以看出一个盒子!
下图为一个CSS盒子模型的内部结构:
转自 菜鸟教程
所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用。
CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括: 边距(外边距) , 边框 , 填充(内边距) ,和 实际内容 。
盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。
下面的图片说明了盒子模型(Box Model):
转自 链接
盒子模型有两种,分别是W3C盒子模型(标准盒模型)和IE盒子模型(怪异盒模型)
1.标准盒模型中width指的是内容区域content的宽度;height指的是内容区域content的高度。
2.标准盒模型下盒子的大小 = content + border + padding + margin
1.怪异盒模型中的width指的是内容、边框、内边距总的宽度(content + border + padding);height指的是内容、边框、内边距总的高度
2.怪异盒模型下盒子的大小=width(content + border + padding) + margin
建议不要给元素添加具有指定宽度的内边距,而是尝试将内边距或外边距添加到元素的父元素和子元素。
即box-sizing属性可以指定盒子模型种类,content-box指定盒子模型为W3C(标准盒模型),border-box为IE盒子模型(怪异盒模型)。