1. 元素选择器
这是最基本的选择器,HTML中的html、p、h1、h2、h3、em、a等这些个元素自身就可以是选择器,例如
html {color:white;} h1 {color: gray;} h2 {color: silver;}
2. 通配选择器——*
这个选择器能够匹配到HTML文档中所有的元素,例子:
* {color: red;}
3 类选择器
带有class属性的元素,可以使用class属性的值来进行选择,比如一段HTML文档有以下内容:
<p class="warning">This is a warn!</p>
p.warning {font-weight: bold;}
4 多类选择器
从类选择器中衍生出的多类选择器,通过把两个类选择器接在一起,可以选择到同时包含着两个类名的元素,这个过程中类名的顺序无关紧要。比如一段文档中有以下内容:
<p class="warning urgent help">There is a multiple class selecor here</p>
.urgent.warning { background-color: red; }
5 ID选择器
ID选择器通过应用某个元素中id属性的值来选择到这个元素,假设一个HTML文档中有以下的内容:
<p id="iamaid">Hello world!</p>
#iamaid {background-color: green;}
如果我们想为所有具有class属性的元素的内容的颜色设置成红色,那么我们可以通过以下方式选择到所有带有class属性的元素:
*[class] {color: red;}
*[class][href] {color: red;}
7 属性值选择器
首先需要知道的是,根据属性的值进行匹配的时候,实际上是进行的一个字符串是否相等的判断,如果字符串的值相等才能匹配,所以如果对于class属性有多个类指定的情况下,选择器也必须按照完全相同的顺序写完class的完整的值。
比如对于如下的HTML文档
<p class="warning urgent help">There is a multiple class selecor here</p>如果我们想要通过属性值选择器选择到这个p元素并将其背景颜色设置成红色的话,我们必须写成这样:
p[class="urgent warning help"] { background-color: red; }
考虑如下HTML文档
<p class="test1 test2 test3 test4">Hello tests!</p>如果这个时候我们使用属性值选择器的时候,因为是做的字符串的相等比较,那么我们必须按照原样将class的属性值写到我们的选择器中,甚至其中那些可恶的空格也必须一个不少的写上,否则就会匹配不到。而是用部分属性值选择器,它可以使用属性的多个值中的一个进行选择,而这所谓的多个值仅仅是将字符串以空格分割之后形成的多个部分。具体到以上的这段HTML文档,如果要选择到这个元素,可以通过以下部分属性值选择器:
p[class~="test4"] { color: green; }
p[class^="test1"] 选择class值以test1为开头的所有元素(value.startswith("test1"))
p[class$="test4"] 选择class值以test4为结尾的所有元素(value.endswith("test4"))
p[class*="test"] 选择class中包含test的所有元素(value.contains("test"))
所以以上三个选择器都能够选择到我们本部分中的那个p元素。
以上就是CSS中各种选择器的一个总结。