一、概念
- 盒子模型用来“放”网页中的各种元素
- 网页设计中内容,如文字、图片等元素,都可是盒子(DIV嵌套)
网页盒子模型:
![92b919af4057b041b7ae5d3d71ac77d7.png](https://i-blog.csdnimg.cn/blog_migrate/896b48c805ddfd53a00b2188a734201a.png)
二、盒子模型属性
1、width(宽度)属性
- 宽度:width:长度值 | 百分比 | auto
- 最大宽度:max-width:长度值 | 百分比 | auto
- 最小宽度:min-width:长度值 | 百分比 | auto
说明:设置块级元素和替换元素的内容宽度
2、height(高度)属性
- 高度:height:长度值 | 百分比 | auto
- 最大高度:max-height: 长度值 | 百分比 | auto
- 最小高度:min-height: 长度值 | 百分比 | auto
说明:设置块级元素和替换元素的内容高度
3、可设置高和宽的HTML属性
- 块级元素:<p>、<div>、<h1>~<h6>、<ul>、<li>、<ol>、<dl>、<dt>、<dd>等
- 替换元素:浏览器根据其标签的元素与属性来判断现实的具体内容:<img>、<input>、<textarea>等
4、height和width属性总结
- width和height属性设置的是内容的宽和高
- width和height属性设置对块级元素和替换元素有效
- max-height(width)/min-height(width)有兼容性问题,IE不支持
5、border边框属性
- 边框宽度(border-width):thin | medium | thick | 长度值
- 边框颜色(border-color):颜色 | transparent
- 边框样式(border-style):值
![e8439b4faf5de35b5d5280a5515fad6f.png](https://i-blog.csdnimg.cn/blog_migrate/42ef0dde76530710936195457ddd45f7.png)
四个不同方向来表示(上、下、左、右),表示为:
border-[left | right | top | bottom]-width
border-[left | right | top | bottom]-color
border-[left | right | top | bottom]-style
边框缩写:
1、boder:[宽度] | [样式] | [颜色]
2、不同方向:
border-top:[宽度] | [样式] | [颜色]
border-left:[宽度] | [样式] | [颜色]
border-right:[宽度] | [样式] | [颜色]
border-bottom:[宽度] | [样式] | [颜色]
6、padding(内边距)填充属性
设置元素的内容与边框之间的距离(内边距或填充),分4个方向(上,下,左,右)
- padding-top:长度值 | 百分比
- padding-right:长度值 | 百分比
- padding-bottom:长度值 | 百分比
- padding-left:长度值 | 百分比
说明:值不能为负
内边距属性缩写:
- padding:值1; 4个方向都为值1
- padding:值1 值2; 上下为值1,左右为值2
- padding:值1 值2 值3; 上为值1,左右为值2,下为值3
- padding:值1 值2 值3 值4; 上为值1,右为值2,下为值3,左为值4
7、margin外边距属性
设置元素的内容与边框之间的距离(外边距),分4个方向(上,下,左,右)
- margin-top:长度值 | 百分比 | auto
- marign-right:长度值 | 百分比 | auto
- marign-bottom:长度值 | 百分比 | auto
- marign-left:长度值 | 百分比 | auto
说明:值可为负值
外边距属性缩写:
- margin:值1; 4个方向都为值1
- margin:值1 值2; 上下为值1,左右为值2
- marign:值1 值2 值3; 上为值1,左右为值2,下为值3
- marign:值1 值2 值3 值4; 上为值1,右为值2,下为值3,左为值4
注:
- 默认情况下,相应HTML块级元素存在外边距body、h1`h6、p......
- 声明margin属性,覆盖默认样式
- margin值为auto,实现水平方向居中显示效果
- 由浏览器计算外边距
- 垂直方向,两个相邻元素都设置外边距,外边距会发生合并
- 合并后外边距高度=两个发生合并边距的=高度中最大值
![4685b4dc1ec299bd1fc3b52142fd9aff.png](https://i-blog.csdnimg.cn/blog_migrate/31e66d633be6bd46b813f3f1bcfac8c4.png)
8、盒子计算
![1cebd8f2c4e116877bc1fbd244130c51.png](https://i-blog.csdnimg.cn/blog_migrate/488386cc3d088fbe27fa006c46461838.png)
盒子在页面中所占宽度:左边距+左边框+左填充+内容宽度+右填充+右边框+右边距组成
width=100-20-10-2=68px
盒子在页面中所占高度:上边距+上边框+上填充+内容高度+下填充+下边框+下边距
height=80-20-10-2=48px
- IE盒子模型:
- 如果没有Doctype文档类型声明,各浏览器按照自己的方式解析
- 如果有Doctype文档类型声明,按照标准盒子模型来解析
三、应用
display属性
- inline:元素将显示为内联元素,元素前后没有换行符
- block:元素将显示为块级元素,元素前后会带有换行符
- inline-block:行内块元素,元素呈现为inline,具有block相应特性
- none:此元素不会被显示