2025年css伪类选择器优先级(css伪类选择器hover)

css伪类选择器优先级(css伪类选择器hover)一 CSS1 选择器 nbsp CSS1 选择器注 注 1 为什么要 LVHA nbsp nbsp 1 鼠标经过的 未访问链接 同时拥有 a link a hover 两种属性 后面的属性会覆盖前面的属性定义 2 鼠标经过的 已访问链接 同时拥有 a visited a hover 两种属性 后面的属性会覆盖前面的属性定义 所以说 a hover 定义一定要放在 a

大家好,我是讯享网,很高兴认识大家。



一、CSS1选择器 

  

1.鼠标经过的“未访问链接”同时拥有a:link、a:hover两种属性,后面的属性会覆盖前面的属性定义;

2.鼠标经过的“已访问链接”同时拥有a:visited、a:hover两种属性,后面的属性会覆盖前面的属性定义;

所以说,a:hover定义一定要放在a:link、a:visited的后面。再重复一遍正确的顺序是:a:link、a:visited、a:hover、a:active .

二、CSS2选择器

补充:1、复合选择器(交集选择器)

  --作用:

    -可以选中同时满足多个选择器的元素

  --语法: 

    -选择器1选择器2选择器N{}

   2、否定伪类

  --语法  

    :not(选择器)

注1:

[target = _black],选择有target属性并且属性值是_black,没有其他值

注2:

三、CSS3选择器

注1:first-child 和 first-of-type

CSS2选择器中有个:first-child

div:first-child{ outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; color: rgb(0, 153, 0);"> red; }//无效,因为<div>1</div>并不是body元素的第一个子元素
<body>
    <p>0</p>
    <div>1</div>
    <div>2</div>
    <div>3</div>
</body>


讯享网

CSS3选择器中有个:first-of-type

div:first-of-type{/*改*/ outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; color: rgb(0, 153, 0);"> red; }//有效,因为<div>1</div>是body元素的子元素中所有div的第一个

同理:last-child和last-of-type一样

注2::only-child 和 :only-of-type

注3::nth-child(n) 和 :nth-of-type(n)

body p:nth-child(2){ background: red; }//无效,body中第二个元素是<div>2</div>,不是p元素,此选择器无效。

补充:关于body p:nth-child(2),如果body中的第二个元素是p元素则有效,如果不是p元素,则无效;若是body :nth-child(2),则选中body中第二个元素。

body p:nth-of-type(2){ background: red; }//有效,效果如下图,因为<p>5</p>是body中第二个p元素

同理 :nth-last-child(n)和:nth-last-of-type(n)一样

其他内容,详见https://blog.csdn.net/q/article/details/

当我们写页面的时候,不知道你会不会产生这样的问题,为什么我给他添加的这条样式分明已经选择到我要给的元素了,但是他的样式并没有生效,那是为什么呢?

定义的属性有冲突时,浏览器会选择用那一套样式呢,下面来介绍一下选择器的优先级。

一、css选择器优先级

不同级别

  1. 在属性后面使用 !important 会覆盖页面内任何位置定义的元素样式。
  2. 作为style属性写在元素内的样式(优先级1000)
  3. id选择器(优先级100)
  4. 类选择器、伪类选择器(优先级10)
  5. 元素选择器(优先级1)
  6. 通配符选择器(优先级0)

  7. 浏览器自定义或继承(没有优先级)

总结排序:!important > 行内样式 > ID选择器 > 类选择器、伪类选择器 > 元素选择器 > 通配符选择器 > 继承 > 浏览器默认属性

同一级别

(1) 同一级别中后写的会覆盖先写的样式

(2) 同一级别css引入方式不同,优先级不同

总结排序:内联(行内)样式 > 内部样式表 > 外部样式表 > 导入样式(@import)。

对于选择器优先级,还可以通过计算权重值来比较。

当选择器中包含多种选择器时,需要将多种选择器的优先级相加然后再比较,

例如:

  #box1 div{}(优先级为100+1=101)和#box1{}(优先级为100),那么两个选择器优先显示的是第一个选择器的样式,因为它的优先级高

但是注意,选择器优先级就算不会超过它的最大数量级,也就是说无论多少个选择器在一起,优先级也不会超过只有一个高级优先级选择器的优先级

并集选择器的优先级是单独计算的

div,p,#p1{}

可以在样式的最后,添加一个important,则此时该样式将会获得一个最高的优先级,将会优先于所有的样式显示甚至超过内联样式

例1、

test.css文件

html文件

执行结果:span最后为红色。

说明css引入方式优先级:内部样式表 > 外部样式表

例2、

执行结果:span最后为黄色。

说明css引入方式优先级:内联(行内)样式 > 内部样式表 > 外部样式表

二、复杂选择器优先级,后代选择器优先级多种情况

有时候当我们写样式的时候会用到好多个后代样式,那么优先级的情况是什么情况呢。来看几个例子。

我这里举的例子有点少,如果你在学习,你可以多自己写几个例子看看效果。

1、 id个数多的优先级高

2、id个数相等的看class个数,class越多优先级越高

3、id和class个数相等,看元素个数,个数越多优先级越高。

4、优先级相同,后面的样式会覆盖前面的样式, 不分先后顺序,只看选择器类型和个数。

文章引用于:https://www.html.cn/qa/css3/13543.html、https://blog.csdn.net/wangchaohpu/article/details/82413850

小讯
上一篇 2025-04-18 22:40
下一篇 2025-06-16 09:46

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/136387.html