基本规则

每个规则有两个基本部分:选择器和声名块(可以由一个或多个声名组成)。

元素选择器

h1 {color: gray;}

选择器分组

h2, p {color: gray;}

通配选择器

* {color: gray;}

声名分组

h1 {color: gray; font: 18px;}

结合选择器和声名分组

h2, p {color: gray; font: 18px;}
h2{                                 /*  标签选择 */
}
p,h1{ /* 使用逗号实现元素合集 */
}
div h1,div h2{ /* 使用空格实现后代元素(子元素和子孙元素)查询,表示div的后代元素h1,h1和div的合集,在从合集中查找后代元素h2,最后查询到的为h2列表 */
background-color: #2b542c;
}
p>h1{ /* >表示直接子元素 */
}
p+h1{ /* +表示紧接在后面的同胞元素,选择h1元素 */
}
html>body table+ul{ /* 在html元素中查询直接子元素body,在body中查询后代元素table,在table元素后面查询同胞元素ul,即在最后选择的为ul列表 */
}
body *{ /* *通配符选择器,匹配所有元素,表示匹配body的所有后代元素 */
}
p.class1.class2{ /* .表示class类选择器,p为标签,连在一块写,表示多重筛选,一个元素可以有多个样式 */
}
#id1{ /* #id选择器,一个元素只能有一个id,所有元素的id不能相同 */
}

类选择器

<p class="test">aaa</p>
.p {color: gray;}

多类选择器

<p class="test test1">aaa</p>
.test {color: gray;}

ID 选择器

<p id="test">aaa</p>
#test {color: gray;}

属性选择器

<p class="test">aaa</p>
p[class] {color: gray;}

根据多个属性选择,下面的例子将同时有 href 和 title 属性的 a 标签的文本设置为粗体

a[herf][title] {font-weight: bold;}

根据具体属性值选择

只选 moons 属性值为 1 的那些 planet 元素

planet[moons= "1"] {font-weight: bold;}

根据部分属性选择

<p class="test test1">aaa</p>
p[class~"test"] {color: gray;}
类型 描述
[p^=”test”] 选择 p 属性值以 test 开头的所有元素
[p$”test”] 选择 p 属性值以 test 结尾的所有元素
[p^=”test”] 选择 p 属性值中包含字符串 test 的所有元素
p[attribute1][attribute2]{         /*  [] 属性选择器,表示具有某种属性的所有元素,多个参数表示同时具有多个属性,class也可以作为一个属性筛选 */
}
a[href="http://www.123.com"]{ /* =具有某个属性,且属性值等于指定值的所有元素 */
}
div[class~="class1"]{ /* ~=具有某个属性,且属性值包含指定值的所有元素 */
}
input[title^="title1"]{ /* ^=指定属性的值以指定字符串开头 */
}
input[title$="title1"]{ /* $=指定属性的值以指定字符串结尾 */
}
input[title*="title1"]{ /* *=指定属性的值包含指定字符串 */
}
input[title|="title1"]{ /* |=指定属性的值等于title1或者以title1-开头 */
}

后代选择器

h1 p {color: gray;}

只选择 h1 子元素的 p 元素

h1 > p {color: gray;}

选择相邻兄弟元素,例如下面的修改紧接着 h1 元素后出现的 p 元素颜色

h1 + p {color: gray;}