CSS选择器是CSS用于选择HTML元素并应用具体样式属性的语法。CSS选择器有许多种类型,本文会详细列举所有的选择器并举例说明具体用法以及CSS选择器权重计算和CSS生效属性分析。
通过标签名称选择元素,如p选择所有段落元素。
css<p>选择器</p> p { color: red; }
通过类名选择元素,如.example选择所有类名元素为example的元素。
css<p class="example">选择器</p> .example { color: red; }
通过ID选择元素,如#example选择ID为example的元素。
css<p id="example">选择器</p> #example { color: red; }
通过DOM属性及值选择元素,如[type=”submit”]选择所有type属性值为text的元素;
css<button type="submit">提交</button> [type="submit"] { backgroud-color: red; }
通过元素的特定状态下选择元素,如:hover选择鼠标悬停在DOM的属性;
css<p>选择器</p> p:hover { color: red; }
选择一个元素的直接子元素;
css<ul> <li>选择器</li> </ul> ul > li { color: red; }
选择一个元素的后代元素;
css<div> <p>选择器</p> </div> div p { color: red; }
选择紧接在另一个元素后面的兄弟元素;
css<div> <h1>选择器标题</h1> <p>选择器</p> </div> h1 + p { color: red; }
使用(*)作为选择器,表示匹配HTML中所有的元素。通配符选择器一般只会在特殊情况下使用,比如需要对全局样式进行重置时。
css* { color: red; }
之所以涉及到选择器优先级问题,是因为在同一个DOM元素上设置多个CSS选择器并且设置了不同的CSS属性,CSS选择器优先级最高的选择器对应的CSS属性就是DOM最终生效属性。
CSS选择器优先级的规则:
组合每个选择器的权重并求和,最终值最高的选择器生效。
例子
css#example .example-class p:first-child { color: red; }
ID选择器 #example:100
类选择器 .example-class:10
标签选择器 p:1
伪类选择器 :first-child:1
选择器权重求和:100 + 10 + 1 + 1 = 112。