多种CSS样式叠加 当浏览器解析时发现同一个选择器出现了相同的样式 浏览器会本着就近原则来 解决冲突 谁跟结构近就用谁 简单的来说就是谁后写的用谁 当没有冲突的样式时 不冲突的样式依然会继续执行
div{ color: red; font-size: 50px; } div{ color: blue; } <div>层叠性</div>此时层叠性三个字会显示为蓝色
此处未给P标签指定颜色 但继承性三个字的颜色依然是蓝色的
子标签会继承父标签的某些样式 如文本颜色和字号 假设要像设置继承属性 写在父元素中就可以了
恰当使用继承 可简化代码 降低复杂度 例如很多子元素需要某个样式 可以给父元素设定这个样式 在子元素中就可以继承 子元素可继承(text-,font-,line-,系列的样式 以及color 样式)
若选择器相同 则优先执行 层叠性 若选择器不同则会按优先级执行
1.继承性属性的选择器
.nav{ color: red; } p{ color: green; } 错误示范 此时的CSS代码 p标签并不继承.nav中的任何属性 此时的P标签 并没有继承类名为.nav的div标签中的任何属性 在浏览器解析css样式时,类名为.nav现在的div标签 并不是p标签的父元素 p标签没有被任何人选中 除了他自己 <div class="nav"> <p>继承性</p> </div>此时标签P中的文字 继承性三个字 显示颜色为green
.nav p{ color: red; } p{ color: green; } 此时p标签会继承 .nav p 中的属性 因.nav p 的权重 大于 p的权重此时标签P中的文字 继承性三个字 显示颜色为red
2.链接伪类选择器
a:hover{ color:red; } 链接伪类选择器的权重值实际为 0,0,1,1 因为此选择器是复合选择器 既包括伪类选择器 也有a标签选择器 所以计算权重需要加上标签选择器的权重权重叠加方式为 对位加法 例如 0,0,0,5 + 0,0,0,5 = 0,0,0,10
不同位数的值不管多大没有任何可比性 例如 0,0,1,0 > 0,0,0,100
权重相同时采用 层叠性 展示样式
