飞道的博客

CSS中常用的选择器

315人阅读  评论(0)

属性选择器

E[att] {} : 选择具有att属性的E元素。 
E[att="val"] {} : 选择具有att属性且属性值等于val的E元素。 
E[att~="val"] {}:用于选取属性值中包含指定单词的元素,不是词汇但是有此字符串的也不行。
E[att|="val"] {}:选择具有att属性且属性值为以val开头并用连接符"-"分隔的字符串的E元素,如果属性值仅为val,也将被选择。

E[att*="val"] {}:选择具有att属性且属性值为包含val的字符串的E元素。
E[att^="val"] {}:选择具有att属性且属性值为以val开头的字符串的E元素
E[att$="val"] {}:选择具有att属性且属性值为以val结尾的字符串的E元素

伪类选择器

p:root{}            将样式绑定到页面的根元素中
p:not(.p1){}          排除p标签中类名为p1的选择器样式
p:empty{}           使用该选择器来制定当元素内容为空白时使用的样式
p:first-child {}    单独指定第一个子元素的样式
p:last-child {}     单独指定最后一个子元素的样式

p:nth-child(odd)nth-child(even)
/*不足之处:nth-child选择器在计算子元素时,第奇数个元素还是偶数个元素时,是连同父元素内的所有子元素一起计算的(默认匹配他们得是相同的子元素*/
p:nth-of-type(odd)奇数和
nth-of-type(even)偶数和

循环使用样式

p:nth-child(n){}选取每一行
/*n:所有的行
	2n:每2行选择一行
	3n:每3行选择一行
	n+2:除第1行外所有的行
	2n+4:从第4行开始隔1行选择1行*/
p:nth-last-child(n){} 从后向前选择,n为参数
	/*--n:所有行
	2:倒数第2行
	-n+3:最后3行*/
p:only-child{}只有一个元素时使用。用于当用户删除信息,当仅剩一个时会出现警告,背景变成红色等等。

目标伪类选择器

p:target{使该选择器来对页面中的某个target元素(锚记链接)指定样式,当跳转到某个锚点时,此锚点会出现指定的样式改变。}

UI元素状态伪类选择器

E:enabled     匹配所有用户界面(form表单)中处于可用状态的E元素
E:disabled     匹配所有用户界面(form表单)中处于不可用状态的E元素
E:checked     匹配所有用户界面(form表单)中处于选中状态的元素E
E::selection  匹配E元素中被用户选中或处于高亮状态的部分,相当于复制粘贴时,要选择某些文本,背景颜色会处于高亮部分。

动态伪类选择器

E:link{}  选择匹配的E元素,而且匹配元素被定义了超链接并未被访问过。
E:visited{}选择匹配的E元素,而且匹配元素被定义超链接并已被访问过。
E:active{} 选择匹配的E元素,且匹配元素被激活。(常用于描点和按钮)
E:hover{}  选择匹配的E元素,且用户鼠标停留在元素E上。IE6及以下浏览器仅支持a:hover
E:focus{}  选择匹配的E元素,对获取焦点所匹配的E元素进行样式的修改。

伪类和伪元素区别

/*css伪类:状态伪类基于元素当前状态进行选择的。结构伪类利用dom树进行元素过滤,通过文档结构的互相关系来匹配元素。
css伪元素:对元素中的特定内容进行操作,而不是描述状态
css3为了区分两者伪类使用单冒号,伪元素使用双冒号,但因为兼容问题现在大部分还是用单冒号*/
伪类一般包括:
:active       将样式添加到被激活的元素
:link{}       将特殊的样式添加到未被访问的链接。
:visited{}    将特殊的样式添加到已被访问的链接。
:hover{}      当鼠标悬浮在元素上方时,向元素添加样式。
:focus{}      将样式添加到被选中的元素。
:first-child  将特殊的样式添加到元素的第一个子元素。
:lang         允许创作者来定义指定的元素中使用的语言。

伪元素一般包括:
:first-letter	将特殊的样式添加到文本的首字母。
:first-line		将特殊的样式添加到文本的首行。
:before			在某元素之前插入某些内容。
:after			在某元素之后插入某些内容。

层级选择器

相邻兄弟选择器:li+li :后边紧相邻的选择器会被选中,第一个li不会被选中,注意不是相邻的子类,而是同级关系。

通用兄弟选择器:li~li :后面的所有li元素都会被选中

子选择器:ul>li :ul后面直接的li元素会被选中

转载:https://blog.csdn.net/wxd_97/article/details/104683837
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场