CSS 盒模型介绍
CSS中的盒模型用来描述一个元素在页面汇总的布局方式,每个HTML元素都被视为是一个矩形的盒子,这个盒子由实际内容(content)、外边距(margin)、边框(border)和内边距(padding)组成。
CSS盒模型主要包含两种:W3C标准盒子模型和IE怪异盒子模型。
CSS的box-sizing属性定义了引擎如何计算一个元素的总宽度和总高度
box-sizing: content-box | border-box |inherit
- content-box 默认值,元素的 width/height 不包含 padding,border 与标准盒子模型表现一致
- border-box 元素的 width/height 包含 padding,border,与怪异盒子模型表现一致
- inherit 指定 box-sizing 属性的值,应该从父元素继承
标准盒子模型:
- 盒子总宽度 = width + padding + border + margin
- 盒子总高度 = height + padding + border + margin
1 2 3 4 5 6 7
| .box { width: 200px; height: 40px; padding: 10px; border: 1px solid red; margin: 10px; }
|
IE怪异盒子模型:
- 盒子总宽度 = width + margin
- 盒子总高度 = height + margin
1 2 3 4 5 6
| .box { box-sizing: border-box; width: 200px; height: 100px; padding: 20px; }
|
Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>CSS 盒模型示例</title> <link rel="stylesheet" href="styles.css"> </head> <body> <div class="box"> <p>W3C 标准盒子模型</p> </div> <div class="box2"> <p>IE 怪异盒子模型</p> </div> </body> </html>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| body { margin: 0; padding: 0; font-family: Arial, sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; } .box { width: 200px; height: 100px; padding: 20px; margin: 30px; border: 5px solid #3498db; background-color: #f5f5f5; box-sizing: content-box; text-align: center; }
.box2{ width: 200px; height: 100px; padding: 20px; margin: 30px; border: 5px solid #3498db; background-color: #f5f5f5; box-sizing: border-box; text-align: center; }
|