CSS选择器备忘录
CSS选择器备忘录
-
基本选择器
Selector Meaning Example 通用选择器 匹配任何元素 * 标签选择器 CSS1中称之为元素选择器,匹配为指定标签的所有元素 div 伪元素选择器 匹配元素内容中的指定部分,选择器E可省略 E::first-line 类选择器 匹配class属性中包含指定类的元素 .warning 伪类选择器 匹配满足某种状态或是符合某种逻辑的元素,选择器E可省略 E:hover或E:first-child id选择器 匹配id属性为指定名称的元素 #content -
属性选择器
Selector Meaning Example E[att] 匹配满足选择器E的元素的满足选择器F且具有att属性的元素,与属性att值无关;E可省略,下同 p[class] E[attr="val"] 匹配满足选择器E且att属性值为"val"的元素 p[class~="warning"] E[attr~="val"] 匹配满足选择器E且att属性中有一个值为"val"的元素 p[class~="warning"] E[attr^="sub"] 匹配满足选择器E且att属性中有一个值为"sub"开头的元素 p[class^="test-"] E[attr$="sub"] 匹配满足选择器E且att属性中有一个值为"sub"结尾的元素 a[href$=".pdf"] E[attr*="sub"] 匹配满足选择器E且att属性中有一个值包含"sub"的元素 div [class*="port"] E[lang|="val"] 匹配满足选择器E且其lang属性的值为指定val开头的元素, html[lang|="en"] 注:lang属性允许开发者为不同的语言定义特殊的规则,语言代码和国家地区对照表详见https://www.cnblogs.com/Robert-huge/p/5481515.html;
-
组合选择器
Selector Meaning Example E F 匹配满足选择器E的元素的所有满足选择器F的内部元素 body h1 E>F 匹配满足选择器E的元素的满足选择器F的直接子元素 ul > li E+F 匹配满足选择器E的元素的下一个兄弟元素,且该元素要满足选择器F h1 + * E~F 匹配满足选择器E的元素后面所有满足选择器F的兄弟元素 h1 ~ h2
注:E,F
表示匹配满足选择器E或是选择器F的元素,没有将E,F
算入组合选择器,因为它完全可以拆分成多个基本选择器或属性选择器,只能算是CSS提供的一种为了减少冗余编码的编码方式。
延伸阅读
[1] 选择器的优先级相关内容详见CSS中的样式层叠机制Cascade
[2] 伪类和伪元素的分析比较详见伪类与伪元素的区别
参考资料
[2] CSS选择器笔记