从<a>标签到CSS选择器的优先级

当你决定做一件事的时候, 就已经克服了这件事中最困难的部分.

这是本人的第一篇博客, 以前也想过要写, 但是一直都没有行动, 应该算比较懒吧. 

初次写博客, 比较生疏, 大家见谅.

问题的开始

a 和 a:link 有什么区别?

大家都知道, 在CSS中 a 是一个标签选择器(也叫类型选择器), 用于选取在HTML文档中所有像 <a>(链接标签) 这个样子的元素.

而 a:link 这个选择器则代表HTML文档中所有未访问过的 <a> 元素. 

那么问题来了, 在我们新访问一个网页的时候, 里面有一个<a>元素, 因为这个<a>是没有被访问过的, 所以符合 a 和 a:link 2个选择器的要求, 在他们的属性有冲突的时候<a>元素会应用哪个选择器的样式呢?

来看下面的代码..

a
{
    color: red;
}
a:link
{
    color: green;
}

结果链接是绿色的. 看来应用的是 a:link 这个选择器

是选择器顺序的影响吗? 

因为在CSS中对于一个元素后定义的样式会覆盖先定义的样式, 所以考虑了下会不会是顺序的原因.

于是更改代码如下..

a:link
{
    color: green;
}
a
{
    color: red;
}

链接的结果依然是绿色的. 

在2种情况下都会应用 a:link 选择器的样式, 于是就有了选择器优先级的概念

CSS选择器的优先级靠选择器的总权重决定

1. 行内样式 ( 就是在HTML标签中直接写样式, 像这样<a style="..."> )  权重 1000

2. id选择器 ( 就是以 '#' 这个开头的选择器 ) 权重 100

3. 类选择器 ( 这个最常用了, 就是以'.' 开头的 ) 和 伪类选择器 (冒号 ':' 开头的) 还有 属性选择器 ( 被 '[' 和 ']' 包起来的 ) 权重 10

4. 类型选择器 和 伪元素选择器 ( 比如 :first-child ) 权重 1

一个选择器的总权重是根据上面各种选择器出现的次数决定的

比如 a 的总权重就是1

而 a:link 的总权重是 1 + 10 = 11 

11 > 1 所以 a:link 的优先级高于 a, 所以说上面每次都应用的是 a:link 也就不奇怪了.

好了..这第一篇博客就写到这吧..希望我把事情说明白了..^-^..

如果各位发现了什么问题请告诉我..感谢感谢..

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSS选择器优先级排序如下: 1. `!important`:具有`!important`声明的样式具有最高优先级,无论其位置在哪里。 2. 行内样式:通过`style`属性直接应用于元素的样式具有较高的优先级。 3. ID选择器:通过`#`符号和元素的ID来选择元素的样式具有较高的优先级。 4. 类选择器属性选择器和伪类选择器:通过`.`符号和类名、`[]`符号和属性名、以及`:`符号和伪类名来选择元素的样式具有较高的优先级。 5. 标签选择器:通过元素的标签名来选择元素的样式具有较低的优先级。 6. 通配符选择器:通过`*`符号来选择所有元素的样式具有较低的优先级。 7. 继承:从父元素继承的样式具有较低的优先级。 8. 浏览器默认属性:浏览器默认的样式具有最低的优先级。 以下是一个示例,展示了不同选择器优先级排序: ```html <!DOCTYPE html> <html> <head> <style> /* ID选择器 */ #myElement { color: red; } /* 类选择器 */ .myClass { color: blue; } /* 标签选择器 */ p { color: green; } </style> </head> <body> <!-- 行内样式 --> <p style="color: orange;">This is a paragraph with inline style.</p> <!-- ID选择器 --> <p id="myElement">This is a paragraph with ID selector.</p> <!-- 类选择器 --> <p class="myClass">This is a paragraph with class selector.</p> <!-- 标签选择器 --> <p>This is a normal paragraph.</p> </body> </html> ``` 在上述示例中,`!important`声明具有最高优先级,行内样式具有较高优先级,ID选择器具有较高优先级,类选择器具有较低优先级标签选择器具有较低优先级。因此,段落元素`<p>`的颜色将按照优先级排序来确定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值