CSS盒子模型本质上是一个盒子,封装周围的HTML元素。css
包括:边框border、外边距margin、内边距padding、实际内容content。浏览器
div { border: border-width border-style border-color; }
属性 | 做用 |
---|---|
border-width | 边框粗细,单位px |
border-style | 边框样式,solid(实线)、dashed(虚线)、dotted(点线) |
border-color | 边框颜色,预约义值/十六进制/rgb() |
线形 | 样式 |
---|---|
dashed 虚线 | - - - - - - - - |
dotted 点线 | ................. |
属性 | 做用 |
---|---|
border-left | 左边框 |
border-right | 右边框 |
border-top | 上边框 |
border-bottom | 下边框 |
简写:code
border: 1px solid blue;/*没有顺序规定,通常按照这种顺序*/
分开写法:blog
border-top: 1px solid blue;/*只设定上边框*/ border-right: 1px dashed red;/*只设定右边框*/; border-bottom: 2px solid #ccc;/*只设定下边框*/ border- left: 3px dotted #123456;/*只设定左边框*/
该属性控制浏览器绘制表格边框的方式,它控制相邻单元格的边框。table
border-collapse: collapse;/*表示相邻边框合并在一块儿*/
若是一个盒子加了边框,会出现撑大盒子的状况,所以有两种解决方案。class
内边距:边框与内容之间的距离。兼容性
属性 | 做用 |
---|---|
padding-left | 左内边距 |
padding-right | 右内边距 |
padding-top | 上内边距 |
padding-bottom | 下内边距 |
padding的简写属性能够有1~4个值。im
值的个数 | 表达意思 |
---|---|
padding: 5px | 上下左右都是5px内边距 |
padding: 5px 10px | 上下5px,左右10px |
padding: 5px 10px 15px | 上5px,左右10px,下15px |
padding: 5px 10px 15px 20px | 上5px,右10px,下15px,左20px |
若是盒子已经有了宽度和高度,此时再指定内边框,会影响盒子的实际大小,撑大盒子。所以有两种解决方案。d3
外边距:控制盒子与盒子之间的距离。样式
属性 | 做用 |
---|---|
margin-left | 左外边距 |
margin-right | 右外边距 |
margin-top | 上外边距 |
margin-bottom | 下外边距 |
margin的简写和padding一致。
利用外边距让块级盒子水平居中所知足的条件:
常见的写法:
注:行内元素、行内块元素水平居中,给其父元素添加text-align: center;便可。
使用margin定义块元素的垂直外边距时,可能会出现外边距的合并。
如上图,出现了取两个值中的较大者的现象,即为相邻块元素垂直外边距的合并。
解决方案:尽可能只给一个盒子添加margin值。
如上图,出现了父元素塌陷较大的外边距值的现象,即为嵌套块元素垂直外边距的塌陷。
解决方案:
这也是CSS的第一行代码。
* { padding: 0;/*清除内边距*/ margin: 0;/*清除外边距*/ }
注: