一、盒模型概念

概念:每个HTML元素都可以看作一个矩形盒子,由四部分组成:
content — 内容区域(文字、图片等)
padding — 内边距(内容与边框之间的距离)
border — 边框
margin — 外边距(元素与其他元素之间的距离)
👇 盒模型可视化演示
margin(外边距)
border(边框)
padding(内边距)
content(内容)

二、width / height

概念:widthheight 设置的是内容区域的宽高,不包含 padding 和 border。
推荐:使用 max-width 替代 width,更灵活。
👇 固定宽度 vs 最大宽度
固定宽度 300px
最大宽度 300px(可缩小)
1/* 固定宽度 */ 2width: 300px; 3 4/* 最大宽度(推荐) */ 5max-width: 300px; 6 7/* 最小宽度 */ 8min-width: 200px;

三、box-sizing

概念:box-sizing 控制盒模型的计算方式:
content-box(默认)— width/height 只包含内容
border-box — width/height 包含 content + padding + border
最佳实践:全局设置 * { box-sizing: border-box; }
👇 box-sizing 对比演示

content-box(默认)

实际宽度:200 + 20×2 + 5×2 = 250px

border-box

实际宽度:200px(包含padding和border)
1/* 全局设置 border-box */ 2* { 3 box-sizing: border-box; 4} 5 6/* content-box(默认) */ 7.box1 { 8 width: 200px; 9 padding: 20px; 10 border: 5px solid #3498db; 11 /* 实际宽度 = 200 + 20×2 + 5×2 = 250px */ 12} 13 14/* border-box */ 15.box2 { 16 width: 200px; 17 padding: 20px; 18 border: 5px solid #e74c3c; 19 box-sizing: border-box; 20 /* 实际宽度 = 200px(包含padding和border) */ 21}

四、padding(内边距)

概念:padding 控制内容与边框之间的距离。
语法:padding: 上 右 下 左;(顺时针方向)
👇 padding 四个方向
padding: 20px
四边都是20px
padding: 10px 20px
上下10px 左右20px
padding: 10px 20px 30px
上10 左右20 下30
padding: 10px 20px 30px 40px
上 右 下 左
1/* 四个方向相同 */ 2padding: 20px; 3 4/* 上下 | 左右 */ 5padding: 10px 20px; 6 7/* 上 | 左右 | 下 */ 8padding: 10px 20px 30px; 9 10/* 上 | 右 | 下 | 左(顺时针) */ 11padding: 10px 20px 30px 40px; 12 13/* 单独设置 */ 14padding-top: 10px; 15padding-right: 20px; 16padding-bottom: 30px; 17padding-left: 40px;

五、margin(外边距)

概念:margin 控制元素与其他元素之间的距离。
注意:margin 可以设置负值,让元素向反方向移动。
居中技巧:margin: 0 auto; 可以让块级元素水平居中。
👇 margin 演示
margin: 15px
margin: 15px
1/* 水平居中 */ 2margin: 0 auto; 3 4/* 负margin */ 5margin-top: -20px; /* 向上移动 */ 6 7/* margin 塌陷问题 */ 8/* 父子元素的垂直margin会合并,取较大值 */ 9.parent { 10 margin-top: 20px; 11} 12.child { 13 margin-top: 30px; 14 /* 实际父元素顶部margin = max(20, 30) = 30px */ 15}

六、border(边框)

概念:border 设置元素边框,常用简写:border: 宽度 样式 颜色
常用样式:solid(实线)、dashed(虚线)、dotted(点线)
👇 不同边框样式
solid 实线
dashed 虚线
dotted 点线
double 双线
1/* 简写 */ 2border: 2px solid #3498db; 3 4/* 单独设置 */ 5border-width: 2px; 6border-style: solid; 7border-color: #3498db; 8 9/* 单边设置 */ 10border-top: 2px solid #e74c3c; 11border-bottom: 1px dashed #2ecc71; 12 13/* 无边框 */ 14border: none;

七、border-radius(圆角)

概念:border-radius 设置圆角,值可以是 px 或 %。
圆形:设置 border-radius: 50% 可以变成圆形。
👇 不同圆角效果
10px
20px
50%
胶囊形
1/* 四角相同 */ 2border-radius: 10px; 3 4/* 圆形(正方形元素) */ 5border-radius: 50%; 6 7/* 胶囊形(长方形元素) */ 8border-radius: 30px; 9 10/* 单独设置四角 */ 11border-radius: 10px 20px 30px 40px; /* 左上 右上 右下 左下 */

八、overflow(溢出处理)

概念:overflow 控制内容超出容器时的处理方式。
常用值:visible(默认)、hiddenautoscroll
👇 overflow 不同值对比

overflow: visible

这是一段很长的文字内容,会溢出容器显示在外面

overflow: hidden

这是一段很长的文字内容,超出部分会被隐藏

overflow: auto

这是一段很长的文字内容,超出部分会出现滚动条
1/* 默认,溢出内容可见 */ 2overflow: visible; 3 4/* 溢出内容隐藏 */ 5overflow: hidden; 6 7/* 溢出内容显示滚动条 */ 8overflow: auto; 9 10/* 只显示横向滚动条 */ 11overflow-x: auto; 12 13/* 只显示纵向滚动条 */ 14overflow-y: auto;