myloveqiqi 2020-08-09
CSS盒子模型本质上是一个盒子,封装周围的HTML元素。
包括:边框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 | 下边框 |
简写:
border: 1px solid blue;/*没有顺序规定,一般按照这种顺序*/
分开写法:
border-top: 1px solid blue;/*只设定上边框*/ border-right: 1px dashed red;/*只设定右边框*/; border-bottom: 2px solid #ccc;/*只设定下边框*/ border- left: 3px dotted #123456;/*只设定左边框*/
该属性控制浏览器绘制表格边框的方式,它控制相邻单元格的边框。
border-collapse: collapse;/*表示相邻边框合并在一起*/
如果一个盒子加了边框,会出现撑大盒子的情况,因此有两种解决方案。
内边距:边框与内容之间的距离。
属性 | 作用 |
---|---|
padding-left | 左内边距 |
padding-right | 右内边距 |
padding-top | 上内边距 |
padding-bottom | 下内边距 |
padding的简写属性可以有1~4个值。
值的个数 | 表达意思 |
---|---|
padding: 5px | 上下左右都是5px内边距 |
padding: 5px 10px | 上下5px,左右10px |
padding: 5px 10px 15px | 上5px,左右10px,下15px |
padding: 5px 10px 15px 20px | 上5px,右10px,下15px,左20px |
如果盒子已经有了宽度和高度,此时再指定内边框,会影响盒子的实际大小,撑大盒子。因此有两种解决方案。
外边距:控制盒子与盒子之间的距离。
属性 | 作用 |
---|---|
margin-left | 左外边距 |
margin-right | 右外边距 |
margin-top | 上外边距 |
margin-bottom | 下外边距 |
margin的简写和padding一致。
利用外边距让块级盒子水平居中所满足的条件:
常见的写法:
注:行内元素、行内块元素水平居中,给其父元素添加text-align: center;即可。
使用margin定义块元素的垂直外边距时,可能会出现外边距的合并。
如上图,出现了取两个值中的较大者的现象,即为相邻块元素垂直外边距的合并。
解决方案:尽量只给一个盒子添加margin值。
如上图,出现了父元素塌陷较大的外边距值的现象,即为嵌套块元素垂直外边距的塌陷。
解决方案:
这也是CSS的第一行代码。
* { padding: 0;/*清除内边距*/ margin: 0;/*清除外边距*/ }
注: