CSS 的其它选择器

首先CSS 选择器分这么几大类:基础选择器、关系选择器、属性选择器、伪类选择器、伪对象选择器。

关系选择器

1.包含选择符(E F)
选择所有被E 元素包含的F 元素,中间用空格隔开ul li{ color:red; }
1.子选择符(E > F)
选择所有作为E 元素的直接子元素F,对更深一层的元素不起作用,用大于号表示。
2.相邻选择符(E+F)
选择紧贴在E 元素之后F 元素,用加号表示,选择相邻的第一个兄弟元素。
3.兄弟选择符(E~F)
选择E 元素之后的所有兄弟元素F,作用于多个元素,用~号隔开。

属性选择器

属性选择器通过[ ] 进行定义。

1.E[att] 选择具有attr 属性的E 元素
option[disabled]{ color: red;} //选择带有display 属性的option 标签
2 E[att="val"] 选择具有att 属性且属性值等于val 的E 元素。
input [type="text"] { ... }
input [type="submit"] { ... }
3 E[att$=”val"] 选择具有att 属性且属性值为以val 结尾的字符串的E 元素
p[class$="1"]{ color:red;} //选择p 元素中class 属性值以p 结尾的元素
q<p class="p1 paragraph p11p">这是个段落</p>
<p class="p1 paragraph p11p">这是个段落</p>
<p class="p1paragraph p11">这是个段落</p>  //变红
<p class="p1">这是个段落</p>               //变红
4 E[att^=“val"] 选择E 元素中有att 属性,且以”val”开头的元素
p[class^="p"]{ color:red;} //选择带有class 属性,属性值以p 开头的元素
<p class="a1">这是个段落</p>
<p class="naragraph p11">这是个段落</p>
<p class="p11">这是个段落</p>
5 E[att*=”val"] 选择具有att 属性且属性值包含val 的字符串的E 元素。
a[href*="www"]{font-weight: bold;} //选择a 标签中href 属性值包含baidu 的元素
<a href="http://www.baidu.com">百度</a>
<a href="#">空的超链接</a>
<a href="http://www.youdao.com">有道</a>
6 E[att~="val"] 选择有att 属性的元素,且属性值列表中有一个符合val 的元素
p[class~="p1"]{ color:red;} //选中p 元素下class 值包含p1 的元素
<p class="p1 paragraph p11">这是个段落</p>
<p class="paragraph p11">这是个段落</p>
<p class="p">这是个段落</p>

伪类选择器

一般通过冒号进行定义

1.E:link 设置超链接a 在未被访问前的样式(特指a 标签)
2.E:visited 设置超链接a 在其链接地址已被访问过时的样式(特指a 标签)
3.E:hover 设置鼠标悬停在元素上时的样式。不限于a 标签,p、li 也可以使用
4.E:active 设置元素在鼠标按下时的样式(不限于a 标签)
5.E:not(s) 匹配不含有s 选择器的元素E。
p:not(.p1){ color:red;}
<p class=”p1”></p>
<p></p>
<p></p>
6.E:first-child 父元素的第一个子元素E。
满足两个条件a.必须有父元素b.它是父元素的第一个子元素
7.E:last-child 父元素的最后一个子元素E
条件同上
8.E:only-child E 元素是唯一的子元素时被匹配
<body>
<p>段落</p> 此时body 中只有这一个元素,所以p:only-child{ color: deepskyblue;} 会生效
</body>
9.E:empty 匹配没有任何子元素(并且不包括空格、回车)的元素E
p:empty{ border:1px solid red;padding:10px;}
<p></p>
<p> </p> //不会被选中
<div></div> //空,但不是P 元素
<p>我是一个p 元素</p> //有text 文本节点
<p><a href="#">百度</a></p> //有子元素
10.E:checked 匹配用户界面上处于选中状态的元素E。(用于input type 为radio 与checkbox 时)
input:checked+span{color:red;}
<input type="radio" name="gender" /><span>男生</span>
<input type="radio" name="gender" checked="checked" /><span>女生</span>
*input 下被选中的元素紧挨着的span 颜色为红色,因为选中状态会变,所以看着像动态的

伪对象选择器

伪对象也叫伪元素,在过去,伪类和伪元素都被书写成前面只加一个冒号,实际上伪对象应该用两个冒号来定义。
伪类和伪对象(元素)的区别
伪类一般反映无法在CSS 中轻松或者可靠检测到的某个元素的状态或者属性;
伪元素表示DOM 外部的某种文档结构

常用伪元素
1.E:before/E::before
2.E:after/E::after

伪元素是在元素内容的前面或后面定义的,必须要添加content:””这个属性,不然伪元素无法定义成功。
p::after{ content:”在P 标签元素内容前加了内容”; color: red;}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发疯的man

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值