什么是元素选择器
我们在开发过程中,一个页面可能有很多的元素,当我们想选择特定的元素并对其修改样式,我们就需要用到元素选择器了。
基本选择器
通用选择器(Universal selector)
选择所有元素。(可选)可以将其限制为特定的名称空间或所有名称空间。
语法: * {}
/* 通用选择器 */
/* 匹配所有元素 */
* {
margin: 0;
padding: 0;
}
元素选择器(Type selector)
按照给定的节点名称,选择所有匹配的元素。
语法: name {}
/* 元素选择器 */
/* 匹配所有div元素 */
div {
width: 100px;
height: 100px;
}
类选择器(Class selector)
按照给定的 class 属性的值,选择所有匹配的元素。这也是开发中最常用的元素!
语法:.name
/* 类选择器 */
/* 匹配所有class里面是eg的元素 */
.eg {
width: 200px;
height: 200px;
}
/* 当直接选择制定元素的类时 */
div.eg {
width: 200px;
height: 200px;
}
ID 选择器(ID selector)
按照 id 属性选择一个与之匹配的元素。需要注意的是,一个文档中,每个 ID 属性都应当是唯一的。
语法:#name
/* ID 选择器 */
/* 匹配所有id里面是eg-name的元素 */
#eg-name {
width: 300px;
height: 300px;
background-color: blue;
}
属性选择器(Attribute selector)
按照给定的属性,选择所有匹配的元素。在开发中并不常用。
语法:[attr] [attr=value]
/* 属性选择器 */
/* 匹配所有属性为title的元素 */
[title] {
width: 400px;
height: 400px;
background-color: green;
}
/* 匹配所有属性为title且值为my-h2的元素 */
[title=my-h2] {
width: 500px;
height: 500px;
background-color: gray;
}
扩展:
[attr]
表示带有以 attr 命名的属性的元素。[attr=value]
表示带有以 attr 命名的属性,且属性值为 value 的元素。[attr~=value]
表示带有以 attr 命名的属性的元素,并且该属性是一个以空格作为分隔的值列表,其中至少有一个值为 value。[attr|=value]
表示带有以 attr 命名的属性的元素,属性值为“value”或是以“value-”为前缀(”-“为连字符,Unicode 编码为 U+002D)开头。典型的应用场景是用来匹配语言简写代码(如 zh-CN,zh-TW 可以用 zh 作为 value)。[attr^=value]
表示带有以 attr 命名的属性,且属性值是以 value 开头的元素。[attr$=value]
表示带有以 attr 命名的属性,且属性值是以 value 结尾的元素。[attr*=value]
表示带有以 attr 命名的属性,且属性值至少包含一个 value 值的元素。[attr operator value i]
在属性选择器的右方括号前添加一个用空格隔开的字母 i(或 I),可以在匹配属性值时忽略大小写(支持 ASCII 字符范围之内的字母)。