(七).盒子模型,样式继承,元素默认样式
作者:互联网
1 盒子模型深入讲解
1.1 盒子模型的组成
① 盒子模型的相关概念
1. 每个元素都可以比作成一个盒子,页面布局就是盒子的排列和堆砌
2. 盒子模研究的概念: 内容、内边距、边框、外边距
内容(content): 内容区域是元素中最主要的区域,元素中的文本内容以及后代元素都显示在内容区域。
内边距(padding): 是内容与元素边界(边框)的距离。
边框(border): 在元素的边界上。
外边距(margin): 是元素与父元素或其他兄弟元素的距离。
② 影响盒子大小的因素
1. 元素的总宽总高 = 内容宽高 + 内边距 + 边框宽度
2. 外边距主要影响元素(盒子)的位置
1.2 盒子中的内容区域
① 设置内容区域的宽高的 CSS 属性
CSS 属性名 | 功能 | 属性值 |
---|---|---|
width | 固定宽度 | 长度 |
max-width | 最大宽度 | 长度 |
min-width | 最小宽度 | 长度 |
height | 固定高度 | 长度 |
max-height | 最大高度 | 长度 |
min-height | 最小高度 | 长度 |
② 设置内容宽高的规则
1. 设置最小最大宽高更多地用于限制默认计算的宽高
2. 最小最大宽高一般不与固定宽高一起设置
③ 元素的默认宽度
行内元素和行内块元素:
默认宽度和高度都是被里面的内容撑开
块级元素
默认高度被内容撑开
默认宽度根据父元素内容的宽度进行计算
块级元素的默认宽度的计算规则:
元素的默认总宽度 = 父元素内容宽度 - 该元素的左右外边距
元素的默认内容宽度 = 父元素内容宽度 - 该元素的左右外边距 - 该元素的左右边框 - 该元素的左右内边距
1.3 盒子的内边距 padding
① 相关 CSS 属性
CSS 属性名 | 功能 | 属性值 |
---|---|---|
padding-left | 左内边距 | 长度 |
padding-right | 右内边距 | 长度 |
padding-top | 上内边距 | 长度 |
padding-bottom | 下内边距 | 长度 |
padding | 复合属性 |
② padding 设置规则
padding 复合属性的设置规则:
/* 所有方向的内边距 */
padding: 20px;
/* 上下 左右 */
padding: 30px 15px;
/* 上 左右 下 */
padding: 15px 20px 10px;
/* 上 右 下 左 */
padding: 10px 20px 30px 40px;
padding 值设置的规则:
1. 使用百分比设置内边距,不论任何方向的内边距参照的都是父元素内容的宽度
2. 内边距的值不能是负值(⭐️)
不同显示模式的元素设置内边距:
1. 块级元素、行内块元素可以完美设置各个方向的内边距。
2. 行内元素可以完美设置左右内边距,上下内边距设置不完美。
1.4 边框 border
CSS 属性名 | 功能 | 属性值 |
---|---|---|
border-style | 边框风格 | none:没有边框。 solid:实线。 dashed:虚线。 dotted:点线。 double:双实线。 hidden:边框隐藏 |
border-color | 边框颜色 | 颜色 |
border-width | 边框宽度 | 长度(不能用百分比) |
border | 复合属性 | |
border-left-style border-left-color border-left-width border-left border-right-style border-right-color border-right-width border-right border-top-style border-top-color border-top-width border-top border-bottom-style border-bottom-color border-bottom-width border-bottom |
具体不作介绍 |
边框有默认宽度(1.5px)和颜色,只是没有样式
1.5 外边距 margin
① 相关 css 属性
CSS 属性名 | 功能 | 属性值 |
---|---|---|
margin-left | 左外边距 | 长度 |
margin-right | 右外边距 | 长度 |
margin-top | 上外边距 | 长度 |
margin-bottom | 下外边距 | 长度 |
margin | 复合外边距 | 长度 |
设置上外边距和左外边距,影响的是本元素的位置
设置下外边距和右外边距,影响的是兄弟元素的位置
② margin 设置规则
margin 复合属性的设置规则:
1个值: 4个方向一起设置
2个值: 上下 左右
3个值: 上 左右 下
4个值: 上 右 下 左
margin 值设置的规则:
1. 使用百分比设置外边距,不论任何方向的外边距参照的都是父元素内容的宽度
2. 外边距可以设置负值 (⭐️)
3. 块级元素的左右外边距同时设置为 auto,该元素在父元素中水平居中
不同显示模式的元素设置外边距:
1. 块级元素、行内块元素可以完美设置各个方向外边距
2. 行内元素只能设置左右外边距,上下外边距设置无效
③ margin 塌陷
什么是 margin 塌陷?
1、 第一个子元素的上外边距和最后一个子元素的下外边距,会塌陷到父元素上
2、 只有块级元素的上下外边距才会发生塌陷。
如何解决 margin 塌陷?
1. 方案一: 给父元素设置边框
2. 方案二: 给父元素设置内边距
3. 方案三: 给父元素设置 overflow:hidden;
我理解就是就是将子元素与父元素各自的外边距分开
④ margin 合并
什么是 margin 合并?
1. 上面兄弟元素的下外边距与下面兄弟元素的上外边距会合并,两者之间页面展示的距离取较大的外边距
2. 只有块级元素的上下外边距才会发生合并
如何解决 margin 合并?
不需要解决!
1.6 内容溢出
CSS 属性名 | 功能 | 属性值 |
---|---|---|
overflow | 设置溢出内容的显示方式 | visible:显示,默认值。 hidden:隐藏。 auto:如果溢出显示滚动条。 scroll:不论是否溢出都显示滚动条。 |
overflow-x | 水平方向溢出内容的显示方式 | 同上 |
overflow-y | 垂直方向溢出内容的显示方式 | 同上 |
auto 和 scroll 的区别:
1. auto:如果内容不溢出没有滚动条,内容溢出有滚动条
2. scroll:不论是否溢出都显示滚动条。
1.7 隐藏元素
display 属性:
display: none;
彻底隐藏元素,不占据任何位置!
visibility 属性:
visibility: hidden;
元素虽隐藏但是仍然占据位置!
2 样式继承和默认样式
2.1 样式继承
1. 后代元素可以继承祖先元素上设置的样式
2. 那些样式可以继承?
字体样式: font-size font-family font-weight font-style font
文字颜色: color
文本样式: text-align text-indent text-decoration line-height letter-spacing word-spacing
注意: vertical-align 该样式不可以被继承
2.2 默认(自带)样式
body: 自带8px的外边距
h1~h6:自动上下外边距、粗体字、字体大小
p:自带上下外边距
ul、ol:自带左内边距、上下外边距
a: 自带下划线、文字颜色、鼠标光标
....
2.3 继承的样式、默认(自带)的样式、直接设置的样式
直接设置的样式 > 默认(自带)的样式 > 继承的样式
标签:盒子,样式,元素,默认,padding,内边,设置,外边,margin 来源: https://www.cnblogs.com/yunyublog/p/16030271.html