css伪类选择器应该怎样用(上)

什么是伪类选择器

什么是伪类,既然是伪,那就是假的或者不存在的,也只有再特定状态下才会有作用。

即:同一个标签根据其不同状态会显示不同的样式的就是伪类。

伪类选择器分为两种,静态伪类和动态伪类,就是触发和非触发。

当然也有其他分法:

  • 动态伪类(link/visited等)
  • 目标伪类(:target)
  • 语言伪类(:lang)
  • UI状态伪类(disabled/checked/enabled)
  • 结构化伪类(nth等)
  • 对立面伪类(not。。)

不管怎么分,关键还是要灵活运用,怎么好记,怎么记

CSS1版本的时候,几乎都是:hover的天下

在CSS2版本的时候,增加了:focus这个常用的

CSS3版本就增加了:nth-child,:not等,本篇会介绍一些常用的伪类选择器,a链接相关link,visited,hover可参照上一篇,如有遗漏,也可留言交流。

一、:before 和 :after

before是在指定选择器之前插入内容和样式

after则为指定选择器之后插入内容和样式

当然after除了上述用法之外,还有一个清除浮动的用法,也是许多公司面试题之一,其原理类似于clear:both方法只是不用加div了。

.content:after { clear:both;content:'';display:block;width:0;height:0;visibility:hidden; }

二、:target

:target选择器可用于当前活动的target元素的样式。

点击2的时候对应html2,对应链接也是/1.html#html2,所以背景会变成红色。如果这时将id写一样生效的只会是第一个id。

 <a href="#html1">点击1</p>
 <a href="#html2">点击2</p>
 <p id="html1">头条</p>
 <p id="html2">头条</p>
 <style>
 :target{
 background-color:red;
 }
 </style>

三、:focus

用于选择具有焦点的元素,通常和input一起用,监听键盘鼠标从而改变样式。

此时我的鼠标点进input中,所以背景变为红色。

<input type="text" >
 <style>
 input:focus{
 background-color:red;
 }
 </style>

四、:first-child和 :last-child

:first-child选择器匹配父元素中第一个子元素。如果不是指定的子元素,则匹配失败。

:last-child选择器匹配父元素中最后一个子元素。如果不是指定的子元素,则匹配失败。

当然上图可能有误区,上图生效的原因是由于a在标签p中即是第一个也是最后一个,所以才会生效,主要是位置,下两张图会解释为什么存在的误区。

五、:first-of-type 和 :last-of-type

(1)、:first-of-type

:first-of-type 匹配相同父元素的第一个指定类型的子元素,简单理解就是选择指定元素的第一个兄弟元素。等同于 :nth-of-type(1)。

li:first-of-type{
 background-color:red;
}

上面的代码,选择所有列表(无序列表和有序列表)中第一个列表项。

(2)、:last-of-type

:last-of-type 匹配相同父元素的最后一个指定类型的子元素,简单理解就是选择指定元素的最后一个兄弟元素。等同于 :nth-last-of-type(1)。

 li:last-of-type{
 background-color:teal;
}

六、:nth-of-type(n) 和 :nth-last-of-type(n)

(1)、:nth-of-type(n)

:nth-of-type(n) 匹配相同父元素的第 N 个指定类型的子元素,也可以理解为选择指定元素的第 N 个兄弟元素。

 p:nth-of-type(2){
 background-color:red;
 }

上面的代码,选择所有同级 p 元素的第 2 个兄弟元素,即相同父元素下第 2 个 p 元素。

(2)、:nth-last-of-type(n)

:nth-last-of-type(n) 匹配相同父元素的倒数第 N 个指定类型的子元素,也可以理解为选择指定元素的倒数第 N 个兄弟元素。

p:nth-last-of-type(3){
 background:teal;
}

七、:nth-child(n) 和 :nth-last-child(n)

(1)、:nth-child(n)

:nth-child(n) 匹配父元素中的第 N 个子元素,不论元素的类型。如果第 N 个不是指定的子元素,则匹配失败。

li:nth-child(2){
 background-color:red;
 }

上面的代码,选择所有列表的第 2 个列表项。

(2)、:nth-last-child(n)

:nth-last-child(n) 匹配父元素中的倒数第 N 个子元素,不论元素的类型。如果倒数第 N 个不是指定的子元素,则匹配失败。

 li:nth-last-child(2){
 background-color:teal;
 }

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

热门产品

php编程基础教程.pptx|php编程培训,php,编程,基础,教程,pptx
php编程基础教程.pptx

历史上的今天:04月30日

热门专题

昆明网站建设|昆明网站建设,昆明网站开发,昆明网站建设公司,昆明网站建设价格,昆明网站设计,昆明网站制作,网页设计,高端网站建设,高端网站设计
昆明网站建设
云南网站建设|云南网站制作,网站建设,云南网站开发,云南网站设计,云南网页设计,云南网站建设公司,云南网站建设
云南网站建设
自考本科|自考本科有用吗,自考文凭,自考本科文凭,自考文凭有用吗,自考本科文凭有用吗,自考文凭承认吗
自考本科
安徽中源管业|安徽中源管业,安徽中源管业mpp电力管,安徽中源管业cpvc电力管,安徽中源管业pe穿线管,安徽中源管业电力管,安徽中源管业排水管,安徽中源管业通信管,安徽中源管业管材
安徽中源管业
云南高职单招|云南单招,云南单招网,云南高职单招网,云南高职单招,云南单招学校,云南单招培训
云南高职单招
综合高中|云南综合高中,昆明综合高中,综合高中能考本一吗,综合高中和普通高中的区别,综合高中是什么意思,综合高中能参加全国统一高考吗,综合高中可以考哪些大学,综合高中的学籍是什么
综合高中
小程序开发|微信小程序,小程序开发,小程序,小程序制作,微信小程序开发,小程序公司,小程序开发公司,分销,三级分销系统,分销系统
小程序开发
昆明综合高中|昆明综合高中
昆明综合高中

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部