标记选择器,类选择器,id选择器,伪类选择器的优先级顺序

标记选择器,类选择器,id选择器,伪类选择器的优先级顺序,第1张

选择器的优先级顺序

id 级别最高

其次是伪类

然后是类

最低的是元素

下图实例:请看红圈位置不管代码插入的顺序在第几行,他都会按照我数字标注的顺序执行

同类别选择器执行顺序

在我们布局的时候,很常用的就是,一个div使用了多个类,他到底会优先执行那个呢?

我分别设置了三个类:

30行.aaa{背景红色}

31行.bbb{背景黄}

32行.ccc{背景蓝}

执行结果

优先执行了蓝色,我们在调换下代码顺序看看

30行.ccc{背景蓝}

31行.bbb{背景黄}

32行.aaa{背景红}

执行结果

从以上测试我们得出,在设置同一类选择器的情况下,优先级是以代码插入顺序有关的,越靠后的优先级就越高。

原因:在浏览器加载的过程中,是以从上到下的顺序执行的,在加载到最后一个的时候会把之前的替换掉

1、id选择器;

2、类选择器;

3、标记选择器;

4、最后是伪选择器。

1.

id选择器(#myid);

2.

类选择器(.myclassname);

3.

标签选择器(div,h1,p);

4.

相邻选择器(h1+p);

5.

子选择器(ul

<

li);

6.

后代选择器(li

a);

7.

通配符选择器(*);

8.

属性选择器(a[rel="external"]);

9.

伪类选择器(a:hover,li:nth-child)。

参考资料

百度百科.百度[引用时间2018-3-31]

对页面的a标签(链接)进行控制,就用到伪类了,下面介绍一下各伪类的作用与用法:

1.所有链接

首先,伪类:link和a元素选择器(来源于链接标记的<a href ...>部分)组合,创建选择器a:link。

a :link {

color:#f00

}

这个简单的选择器将处理所有<a>元素的实例,将所有未访问过的的链接变为红色。由于没有创建 相应的选择起来覆盖浏览器默认访问过的链接样式,所有访问过的链接也仍然是红色。

2.访问过的链接

为了区别显示访问过的链接,只需要结合<a>元素和:visited伪类创建一个简单的选择器即可。

a :visited {

color:#999

}

现在所有未访问过的链接是红色,而所有访问过的链接将变成淡灰色(如图7-2所示)。让访问过的链接和没有访问过的链接有所不同的是非常重要的。这是一个大家都接受的惯例,并且可以立即突出在本机上已经访问过的所有连接。

3.:hover伪类

假定有一个很大的连接列表,或者有一个到处都是链接的段落,如果没有某种形式的交互,用户很容易就会点错链接,从而被带到错误的目的网页。强大的:hover伪类可以解决这个问题,该伪类除了能够提高可用性外,也是非常吸引人的。

同样,这个选择器首先找到所有<a>元素的实例,但是仅仅当用户鼠标移动到链接文本时,才真正执行。

a:hover {

color:#333

这个简单的规则在鼠标放在链接上时将所有的链接文本变成深灰色,而不管该链接是否已经访问过。

4.:active伪类

:active伪类主要关注鼠标真正点击链接时的样式。该伪类可以提高网页的可用性。

a:active {

color:#333

}

在这个例子中,当用户点击链接时,只要当前页面一直保持浏览,文本将变成黑色,这样主要是提供一个额外的提示,以表明用户目前正在处理那个网页。

另外要非常注意的是这几个伪类在声明时的顺序:如果你在同一个选择器上使用几种不同的伪类,声明时一定要注意他们之间的先后顺序,记住,一定是L V H A(字母为各个伪类的首字母),这个顺序非常重要。

例如,如果你将a:hover选择器放在a:visited选择器之上(也就是说你的顺序是L H V A),由于层叠作用,你会发现a:hover声明对于所有访问过的链接没有任何影响。即使鼠标停留在连接上,文本仍然保持淡灰色,而不会发生预期的动作。或许有某些情况需要这种方法,但是这种场合应该很少,因此,最好是要避免。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7453582.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存