CSS起源
随着 HTML 的发展,HTML 增加了很多功能,但代码也越来越臃肿,HTML 就变得越来越乱。网页也失去了语义化,维护代码很艰难,因为代码很混乱:于是装饰网页样式的 CSS(层叠样式表,Cascading Style Sheets)诞生了。
层叠Cascading、优先级
层叠三大规则
最高优先度:样式表来源
重要程度递增:
用户代理样式(浏览器默认样式)
用户样式表(很少有)
作者样式表(开发者写的,最多打交道的)*
作者样式表中的!important
用户样式表中的!important
用户代理样式表中的!important
*为了看它哪个生效,我们需要看选择器优先级
中优先度:选择器优先级
内联(o)> id(a)> class=attribute=pseudoclass(b)> type=pseudo-element(c)
举例: div:is(p,#card) 因为#card指id或p指字段,即有一个a。div是一个类型,所以有一个c。
所以div:is(p,#card)的标记为(1,0,1)
最低优先度:源码位置
选择器优先级相同的属性,位于代码最下面的那个起作用。谁最后声明,谁生效。
由层叠引出的编代码建议
1. 选择器少用id,因为优先级比较高,不利于后续代码覆盖和CSS复用。
2. 尽量不要用!important,优先级太高,后续代码拓展和灵活性会被压缩。
3. 自己的样式加载在引用库样式后面,以保证自己的样式被使用。
继承
1. 大部分具有继承特性的属性跟文本相关。还有少部分雷彪、表格的属性。
2. 可以使用inherit关键字显示制定一个属性值从其父元素继承。
如: h1{
font-size: 28px;
}
.card{
font-size: 1px;
}
.card h1{
font-size: inherit;
}
最终card的h1会为1px,因为他继承了card的属性。
CSS的值和单位
属性后会跟值,后跟单位
值:文字类:initial,颜色,位置等等
数值类:z-index:1这种数值,或带单位的数值,百分比等。
函数生成:calc(),min(),max()等
单位:长度:绝对长度,相对长度。
角度。
时间。
分辨率。