CSS新增选择器主要分为属性选择器、关系选择器、结构伪类选择器、UI伪类选择器
- 属性选择器
属性选择器可以根据网页标记的属性及属性值来选择标记。属性选择器一般是一个记后紧跟中括号[],中括号内部是属性或者属性表达式。
例如:E[class=main]{font-size:12px}
常见的三种属性选择器:
-
E[att^=value]
例: div[id^=new]
例子说明:匹配一个div,它定义了id属性,id的值为new开头的任意字符串 -
E[att=value]
例: div[id$=new]
例子说明:匹配一个div,它定义了id属性,id的值为new结尾的任意字符串 -
E[att*=value]
例: div[id*=new]
例子说明:匹配一个div,它定义了id属性,id的值任意位置包含了new的任意字符串
- 关系选择器
关系选择器分子选择器、相邻兄弟选择器、通用选择器
放入代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
*{
padding: 0;
margin: 0;
}
div{
height: 100px;
width: 200px;
border: 1px solid#000;
}
h2>span{
color: green;
}
h2+p{
color: red;
}
h2~p{
color: yellow;
}
</style>
</head>
<body>
<div id="new">
<h2>
<span>遇见彩虹</span>
<span>吃定彩虹</span>
</h2>
<p>
<span>首页</span>
<span>产品展示</span>
<span>联系我们</span>
</p>
<p>一切皆有可能!</p>
</div>
<div></div>
</body>
</html>
-
子选择器
例:h2>span
说明:选择h2下的span标签
h2>span{
color: green;
}
-
相邻兄弟选择器
例:h2+p
说明:选择h2后的第一个兄弟标签p标签
h2+p{
color: red;
}
-
通用选择器
例:h2~p
说明:选择h2的所有p兄弟标签
h2~p{
color: yellow;
}
结构伪类选择器
放入代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
*{
padding: 0;
margin: 0;
}
div{
height: 100px;
width: 200px;
border: 1px solid#000;
}
</style>
</head>
<body>
<div id="new">
<h2>
<span>遇见彩虹</span>
<span>吃定彩虹</span>
</h2>
<p class="p1">
<span>首页</span>
<i>产品展示</i>
<span>联系我们</span>
<span>关于我们</span>
</p>
<p class="p2">一切皆有可能!</p>
</div>
<div></div>
<div class="b3">
<h2>广告</h2>
</div>
</body>
</html>
-
:root
选择匹配文档的根元素
:root{
color: #f00;
}
-
E:nth-child(n)
选择所有在其父元素中的第n个位置的匹配E的子元素
div h2 span:nth-child(2){
color: green;
}
-
E:nth-last-child(n)
选择所有在其父元素中倒数第n个位置的匹配E的子元素
div p i:nth-last-child(2){
color: green;
}
-
E:nth-of-type(n)
选择所有在其父元素中同类型第n个位置的匹配E的子元素
div .p1 span:nth-of-type(2){
color: green;
}
-
E:nth-last-of-type(n)
选择所有在其父元素中同类型倒数第n个位置的匹配E的子元素
div .p1 span:nth-last-of-type(1){
color: green;
}
-
E:last-child
选择位于其父元素中最后一个位置,且匹配E的子元素
div .p1 span:last-child{
color: green;
}
-
E:first-child
选择位于其父元素中第一个位置,且匹配E的子元素
div .p1 span:first-child{
color: green;
}
-
E:fiest-of-type
选择在其父元素中匹配E的第一个同类型子元素
div .p1 span:first-of-type{
color: green;
}
-
E:last-of-type
选择在其父元素中匹配E的最后一个同类型子元素
div .p1 i:last-of-type{
color: green;
}
-
E:only-child
选择在其父元素中只包含一个子元素,且该子元素匹配E
.b3 h2:only-child{
color: #f00;
}
-
E:only-of-type
选择在其父元素中只包含一个同类型子元素,且该子元素匹配E
#new h2:only-of-type{
color: #f00;
}
-
E:empty
选择匹配E的元素,且该元素不包含子元素
div:empty{
border: 2px solid#f00;
}
- UI伪类选择器
放入代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
* {
padding: 0;
margin: 0;
}
</style>
</head>
<body>
<input type="text" />
<input type="text" disabled="disabled"/>
</body>
</html>
-
E:enabled
选择匹配E的所有可用UI元素
input[type="text"]:enabled {
cursor: not-allowed;
background: #eee;
border-color: #ddd;
}
-
E:disabled
选择匹配E的所有不可用UI元素
input[type="text"]:disabled {
cursor: not-allowed;
background: #eee;
border-color: #ddd;
}
-
E:checked
选择匹配E的所有可用UI元素
input[type="text"]:checked {
cursor: not-allowed;
background: #eee;
border-color: #ddd;
}
-
E:read-write
选择匹配可读及可写的元素
input[type="text"]:read-write {
cursor: not-allowed;
background: #eee;
border-color: #ddd;
}
-
E:read-only
选择匹配设置"readonly" (只读)属性的元素
input[type="text"]:read-only{
cursor: not-allowed;
background: #eee;
border-color: #ddd;
}
<input type="text" readonly="readonly"/>
<input type="text" disabled="disabled"/>
-
E:.selection
匹配元素中被用户选中或处于高亮状态的部分
input[type="text"]:selection{
cursor: not-allowed;
background: #eee;
border-color: #ddd;
}
-
E:out-of-range
用于标签的值在指定区间之外时显示的样式
input:out-of-range{
border: 1px solid#f00;
}
<input type="number" max="20" min="1"/>
<input type="email" disabled="disabled"/>
-
E:in-range
用于标签的值在指定区间之内时显示的样式
-
E:optional
用于匹配可选的输入元素
input[type="text"]:optional{
background-color: #f00;
}
<input type="text"/>
<input type="email" disabled="disabled"/>
-
E:required
用于匹配设置了"required" 属性的元素
input[type="text"]:required{
cursor: not-allowed;
background: #f00;
border-color: #ddd;
}
<input type="text" readonly="readonly" required="required"/>
<input type="text" disabled="disabled"/>
-
E:valid E:invalid
用于匹配输入值为合法、非法的元素
- 动态伪类选择器
-
E:link
链接伪类选择器
选择匹配的E元素,而且匹配元素被定义了超链接并未被访问过。常用于链接描点上 -
E:visited
链接伪类选择器
选择匹配的E元素,而且匹配元素被定义了超链接并已被访问过。常用于链接描点上 -
E:active
用户行为选择器
选择匹配的E元素,且匹配元素被激活。常用于链接描点和按钮上 -
E:hover
用户行为选择器
选择匹配的E元素,且用户鼠标停留在元素E上。IE6及以下浏览器仅支持a:hover -
E:focus
用户行为选择器
选择匹配的E元素,而且匹配元素获取焦点
- 目标伪类选择器
-
E:target
选择匹配E的所有元素,且匹配元素被相关URL指向 (如:锚点链接)