务必下载!!
今日的代码和讲义 以及思维导图:【点击此链接下载 Day05.zip】
大纲

2.1. CSS属性继承
- CSS的某些属性具有继承性(
Inherited):- 如果一个
属性具备继承性, 那么在该元素上设置后, 它的后代元素都可以继承这个属性; - 当然, 如果
后代元素自己有设置该属性, 那么优先使用后代元素自己的属性(不管继承过来的属性权重多高);
- 如果一个
- 如何知道一个属性是否具有继承性呢?
- 常见的
font-size/font-family/font-weight/line-height/color/text-align都具有继承性;- 一般和文本/字体相关的很多属性都具备继承;
- 这些不用刻意去记, 用的多自然就记住了;
xmind、多查文档
- 常见的
- 另外要多学会查阅文档,文档中每个属性都有标明其继承性的
1 | |

常见的继承属性有哪些呢?(不用记)

2.2. CSS属性层叠
1 | |
- CSS的翻译是层叠样式表,什么是
层叠呢?- 对于一个元素来说,
相同一个属性我们可以通过不同的选择器给它进行多次设置; - 那么属性会
被一层层覆盖上去; - 但是最终
只有一个会生效;
- 对于一个元素来说,
- 那么多个样式属性覆盖上去,哪一个会生效呢?
- 判断一:
选择器的权重,权重大的生效,根据权重可以判断出优先级; - 判断二:
先后顺序,权重相同时,后面设置的生效;
- 判断一:
- 那么如何知道元素的权重呢?
选择器的权重
- 按照经验,为了方便比较CSS属性的优先级,可以给CSS属性所处的环境定义一个权值(权重)
!important:10000内联样式:1000id选择器:100类选择器、属性选择器、伪类:10元素选择器、伪元素:1通配符:0

2.3. 元素的类型
1 | |
在前面我们会经常提到div是
块级元素会独占一行**, **span 是行内级元素会在同一行显示.- 到底什么是块级元素, 什么是行内级元素呢?
HTML定义元素类型的思路:
HTML元素有很多, 比如h元素/p元素/div元素/span元素/img元素/a元素等等;- 当我们把这个元素
放到页面上时, 这个元素到底占据页面中一行多大的空间呢?- ✓ 为什么我们这里
只说一行呢? 因为垂直方向的高度通常是内容决定的;
- ✓ 为什么我们这里
- 比如一个
h1元素的标题, 我们必然是希望它独占一行的, 其他的内容不应该和我的标题放在一起; - 比如一个
p元素的段落, 必然也应该独占一行, 其他的内容不应该和我的段落放在一起; - 而类似于
img/span/a元素, 通常是对内容的某一个细节的特殊描述, 没有必要独占一行;
所以, 为了区分哪些元素需要独占一行, 哪些元素不需要独占一行, HTML将元素区分(本质是通过CSS的)成了两类:
块级元素(
block-level elements): 独占父元素的一行行内级元素(
inline-level elements):多个行内级元素可以在父元素的同一行中显示
通过CSS修改元素类型
- 前面我们说过,事实上元素没有本质的区别:
div是块级元素,span是行内级元素;div之所以是块级元素仅仅是因为浏览器默认设置了display属性而已;

- 那么我们是否可以通过
display来改变元素的特性呢?当然可以!
2.4. 元素的隐藏方法
1 | |
- CSS中有个
display属性,能修改元素的显示类型,有4个常用值block:让元素显示为块级元素inline:让元素显示为行内级元素inline-block:让元素同时具备行内级、块级元素的特征none:隐藏元素
- 事实上
display还有其他的值, 比如flex, 后续会专门学习;
display值的特性(非常重要)

block元素:- 独占父元素的一行
- 可以随意设置宽高
- 高度默认由内容决定
inline-block元素:- 跟其他行内级元素在同一行显示
- 可以随意设置宽高
- 可以这样理解
- ✓ 对外来说,它是一个行内级元素
- ✓ 对内来说,它是一个块级元素
inline:- 跟其他行内级元素在同一行显示;
- 不可以随意设置宽高;
- 宽高都由内容决定;

行内替换元素(inline-replaced)(补充)
- 和其他的行内级元素在同一行显示
- 可以设置宽度和高度
img是行内替换元素不是行内块级元素
编写HTML时的注意事项
块级元素、inline-block元素- 一般情况下,
可以包含其他任何元素(比如块级元素、行内级元素、inline-block元素) - 特殊情况,
p元素不能包含其他块级元素
- 一般情况下,
- 行内级元素(比如
a、span、strong等)- 一般情况下,只能
包含行内级元素
- 一般情况下,只能

元素隐藏方法
- 方法一:
display设置为none- 元素不显示出来, 并且也不占据位置,
不占据任何空间(和不存在一样);
- 元素不显示出来, 并且也不占据位置,
- 方法二:
visibility设置为hidden- 设置为
hidden, 虽然元素不可见, 但是会占据元素应该占据的空间; - 默认为
visible, 元素是可见的;
- 设置为
- 方法三:
rgba设置颜色,将a的值设置为0- rgba的
a设置的是alpha值, 可以设置透明度, 不影响子元素;
- rgba的
- 方法四:
opacity设置透明度,设置为0- 设置整个元素的透明度, 会影响所有的子元素;

CSS样式不生效技巧
- 为何有时候编写的
CSS属性不好使,有可能是因为- 选择器的优先级太低
- 选择器没选中对应的元素
- CSS属性的使用形式不对
- ✓ 元素不支持此
CSS属性,比如span默认是不支持width和height的 - ✓ 浏览器不支持此
CSS属性,比如旧版本的浏览器不支持一些css module3的某些属性 - ✓ 被同类型的
CSS属性覆盖,比如font覆盖font-size
- ✓ 元素不支持此
- 建议
- 充分利用浏览器的开发者工具进行调试(增加、修改样式)、查错
2.5. overflow
1 | |
overflow: 用于控制内容溢出时的行为visible:溢出的内容照样可见hidden:溢出的内容直接裁剪scroll:溢出的内容被裁剪,但可以通过滚动机制查看- 会一直显示滚动条区域,滚动条区域占用的空间属于
width、height
- 会一直显示滚动条区域,滚动条区域占用的空间属于
auto:自动根据内容是否溢出来决定是否提供滚动机制
2.6. HTML嵌套的规范
1 | |
三. 盒子模型
3.1. 认识盒子模型
1 | |




3.2. content
1 | |
- 设置内容是通过宽度和高度设置的:
- 宽度设置:
width - 高度设置:
height
- 宽度设置:
- 注意: 对于行内级非替换元素来说, 设置宽高是无效的!
- 另外我们还可以设置如下属性:
min-width:最小宽度,无论内容多少,宽度都大于或等于min-widthmax-width:最大宽度,无论内容多少,宽度都小于或等于max-width- 移动端适配时, 可以设置最大宽度和最小宽度;
- 下面两个属性不常用:
min-height:最小高度,无论内容多少,高度都大于或等于min-heightmax-height:最大高度,无论内容多少,高度都小于或等于max-height

3.3. padding
1 | |
padding属性用于设置盒子的内边距 , 通常用于设置边框和内容之间的间距;padding包括四个方向,所以有如下的取值:padding-top:上内边距padding-right:右内边距padding-bottom:下内边距padding-left:左内边距
padding单独编写是一个缩写属性:padding-top、padding-right、padding-bottom、padding-left的简写属性padding缩写属性是从零点钟方向开始, 沿着顺时针转动的, 也就是上右下左;
padding并非必须是四个值,也可以有其他值;

3.4. border
1 | |

设置边框的方式
- 边框宽度
border-top-width、border-right-width、border-bottom-width、border-left-widthborder-width是上面4个属性的简写属性
- 边框颜色
border-top-color、border-right-color、border-bottom-color、border-left-colorborder-color是上面4个属性的简写属性
- 边框样式
border-top-style、border-right-style、border-bottom-style、border-left-styleborder-style是上面4个属性的简写属性
边框的样式设置值
- 边框的样式有很多,我们可以了解如下的几个:
groove:凹槽, 沟槽, 边框看上去好象是雕刻在画布之内ridge:山脊, 和grove相反,边框看上去好象是从画布中凸出来

同时设置的方式
- 如果我们相对
某一边同时设置宽度样式颜色,可以进行如下设置: border-topborder-rightborder-bottomborder-leftborder: 统一设置 4 个方向的边框
3.5. border-radius
1 | |
border-radius用于设置盒子的圆角border-radius常见的值 :数值: 通常用来设置 小的圆角, 比如6px;百分比: 通常用来设置一定的弧度或者圆形;

border-radius补充
border-radius事实上是一个缩写属性:- 将这四个属性
border-top-left-radius、border-top-right-radius、border-bottom-right-radius,和border-bottom-left-radius简写为一个属性。 - 开发中比较少见一个个圆角设置;
- 将这四个属性
- 如果一个元素是正方形, 设置
border-radius大于或等于50% 时,就会变成一个圆.

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ZkeqのCoding日志!
评论





