广告
返回顶部
首页 > 资讯 > 精选 >CSS优先级指的是什么
  • 299
分享到

CSS优先级指的是什么

2023-06-06 12:06:23 299人浏览 安东尼
摘要

这篇“CSS优先级指的是什么”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“CSS优先级指的是什么”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让我们进入主题吧。cs

这篇“CSS优先级指的是什么”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“CSS优先级指的是什么”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让我们进入主题吧。

css是什么意思

css是一种用来表现html或XML等文件样式的计算机语言,主要是用来设计网页的样式,使网页更加美化。它也是一种定义样式结构如字体、颜色、位置等的语言,并且css样式可以直接存储于HTML网页或者单独的样式单文件中,而样式规则的优先级由css根据这个层次结构决定,从而实现级联效果,发展至今,css不仅能装饰网页,也可以配合各种脚本对于网页进行格式化。

所谓CSS优先级,即是指CSS样式在浏览器中被解析的先后顺序;浏览器是通过优先级来判断哪些属性值与元素最相关以决定并应用到该元素上的。优先级就是分配给指定的CSS声明的一个权重,它由匹配的选择器中的每一种选择器类型的数值决定。

一、优先级

所谓CSS优先级,即是指CSS样式在浏览器中被解析的先后顺序。

浏览器根据优先级来决定给元素应用哪个样式,而优先级仅由选择器的匹配规则来决定。

内联》ID选择器》伪类=属性选择器=类选择器》元素选择器【p】》通用选择器(*)》继承的样式

二、优先级计算:

上面说了,优先级仅有选择器决定,怎么个计算方法呢?

a、用a表示选择器中ID选择器出现的次数

b、用b表示类选择器,属性选择器和伪类选择器出现的总次数。

c、用c表示标签选择器、伪元素选择器出现的总次数

d、忽略通用选择器

e、然后计算a*100+b*10+c的大小,这就是优先级了。

权重:内联样式1000》id选择器100》class选择器10》标签选择器1

Note:

ID选择器「如:#header」,Class选择器「如:.foo」,属性选择器「如:[class]」,伪类「如::link」,标签选择器「如:h2」,伪元素「如::after」,选择器「*」

接下来从以下几点深入分析优先级。

1、优先级计算无视DOM树中的距离

开头说明的例子:

<!DOCTYPE html><html><style type="text/css">body h2 {  color: green;}html h2 {  color: purple;}</style></head><body><h2>Here is a title!</h2></html>

body h2和html h2的优先级相同。

2、伪类选择器,属性选择器和class选择器的优先级一样

伪类=属性选择器=类选择器

所以后面的会覆盖前面的。

<!DOCTYPE html><html><meta charset="utf-8"><style type="text/css">    :focus {        color: red;    }    [class] {        color: blue;    }    .classtest {        color: green;    }</style></head><body><div class="classtest">    什么颜色文字</div></body></html>

如下图类选择器在后,所以覆盖前面的样式,所以文字绿色。

CSS优先级指的是什么

如下图属性选择器在后,会覆盖前面的类选择器样式,所以文本蓝色。

CSS优先级指的是什么

focus同理,只有放后面才生效,否则会被伪类和属性选择器覆盖

CSS优先级指的是什么CSS优先级指的是什么

3、基于类型的优先级

优先级是根据选择器的类型进行计算的。

举例:属性选择器尽管选择了一个ID但是在优先级计算中还是根据类型计算,因此即使选择的是相同的元素,但ID选择器有更高的优先级,所以* #foo设置的样式生效。

<!DOCTYPE html><html><style type="text/css">* #foo {  color: green;}*[id="foo"] {  color: purple;}</style></head><body><p id="foo">I am a sample text.</p></body></html>

CSS优先级指的是什么

4、:not伪类不参与优先级计

【:not】否定伪类在优先级计算中不会被看做是伪类,但是,会把:not里面的选择器当普通选择器计数。这句话有点不好理解,其实就是忽略掉:not,其他伪类(如:hover)参与CSS优先级的计算,但是「:not」不参与计算。

举个例子:

<!DOCTYPE html><html><style type="text/css">div.outer p {  color:red;}div:not(.outer) p {  color: blue;}</style></head><body><div class="outer">  <p>This is in the outer div.</p>  <div class="inner">    <p>This text is in the inner div.</p>  </div></div></body></html>

CSS优先级指的是什么

该例子中,选择器p.outer p 和选择器p:not(.outer) p的优先级是相同的,:not被忽略掉了,:not(.outer)中的.outer正常计数。

如果调换位置,inner元素会变成红色

    div:not(.outer) p {        color: blue;    }    div.outer p {        color:red;    }

CSS优先级指的是什么

5、优先级计算不升位

不要把权重简单的作为10进制数字比较其大小。

a=1的规则优先级将永远高于其他a=0的。

比如一个选择器的a>0,b=0即使另外一个选择器的a=0,b=12,c=12那么前者的权重依然更大!!

为证明我做了一个不现实的demo

<!DOCTYPE html><html><meta charset="utf-8"><style type="text/css">#test{     color: blue}div.classtest div.classtest div.classtest div.classtest div.classtest div.classtest div.classtest div.classtest div.classtest div.classtest div.classtest div.classtest{ color:green;}</style></head><body><div  class="classtest"><div class="classtest"><div class="classtest"><div class="classtest"><div class="classtest"><div class="classtest"><div class="classtest"><div class="classtest"><div class="classtest"><div class="classtest"><div class="classtest"><div id="test" class="classtest">什么颜色文章</div></div></div></div></div></div></div></div></div></div></div></div></body></html>

可见文本颜色还是蓝色!!

同样有一个带有10个id选择器的规则,优先级也不如内联样式。

总之优先级的计算不是基于十进制升位的,后面的数优先级再高也不能升到前一位。

6、其他

下面再给出一个经典的例子,自己计算一下就明白了。

Examples:*               LI              UL LI           UL OL+LI        H1 + *[REL=up]  UL OL LI.red    LI.red.level    #x34y           #s12:not(FOO)   

如果确实有棘手的情况,可以在Firebug中查看优先级。Firebug中按照优先级排序显示规则,将优先级更高的规则显示在最上面,并将被覆盖的规则用删除线划掉。

CSS优先级指的是什么

三、!import

为什么没有把!import放在优先级顺序中,因为官方认为!import和优先级没一点关系。

不建议使用!import

  • Never 绝不要在全站使用!import。

  • Only 只在需要覆盖全站或外部 css(例如引用的 Extjs 或者 YUI )的特定页面中使用   !important

  • Never 永远不要在你的插件中使用 !important

  • Always 要优先考虑使用样式规则的优先级来解决问题而不是 !important

选择元素时尽量不要多选,不要放宽选择器的范围。因为范围越小,越具有针对性,优先级越高。

1、什么场合使用!import?

使用!import的场合也是有的,但是是在没有别的解决方案的时候。

比如需要覆盖内联样式,因为内联样式的优先级最高,只能用!import去覆盖内联样式。

还有一种情况

<style type="text/css">#someElement p {    color: blue;}p.awesome {    color: red;}</style></head><body><div id="someElement"><p class="awesome">some text</p></div></body>

在外层有 #someElement 的情况下,你怎样能使 awesome 的段落变成红色呢?这种情况下,如果不使用 !important ,第一条规则永远比第二条的优先级更高。这也是没有别的办法,如果用内联结果只会更糟糕。

2、怎样覆盖已有!import规则

a、再加一条!import的css语句,将其应用到更高优先级的选择器(在原有基础上添加额外的标签、类或者ID选择器)。

几个更高优先级选择器的例子:

table td    {height: 50px !important;}.myTable td {height: 50px !important;}#myTable td {height: 50px !important;}

b、选择器一样,但添加的位置在原有声明后面。因为相同优先级,后边定义的声明覆盖前面的。

相同选择器的例子:

td {height: 30px !important;}td {height: 50px !important;}

以上是“CSS优先级指的是什么”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: CSS优先级指的是什么

本文链接: https://www.lsjlt.com/news/246972.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • CSS优先级指的是什么
    这篇“CSS优先级指的是什么”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“CSS优先级指的是什么”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让我们进入主题吧。cs...
    99+
    2023-06-06
  • java线程优先级指的是什么
    这篇文章给大家分享的是有关java线程优先级指的是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3. 客户端开发;4. 网...
    99+
    2023-06-14
  • css选择器优先级是什么
    小编给大家分享一下css选择器优先级是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 选择器优先级由高到低分别为: ...
    99+
    2022-10-19
  • CSS优先级计算的规则是什么
    这篇文章将为大家详细讲解有关CSS优先级计算的规则是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。CSS的权重一、CSS的引入方式  1.在节点元素上,使用...
    99+
    2022-10-19
  • css样式优先级顺序是什么
    这篇文章主要讲解了“css样式优先级顺序是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css样式优先级顺序是什么”吧!   更好地理解哪些css样式...
    99+
    2022-10-19
  • css选择器的优先级排序是什么
    CSS选择器的优先级排序如下:1. !important:具有最高优先级,会覆盖其他所有规则。2. 内联样式:通过style属性直接...
    99+
    2023-10-12
    css
  • CSS优先级的概念和规则是什么
    本篇内容介绍了“CSS优先级的概念和规则是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!本文向大家描述...
    99+
    2022-10-19
  • CSS选择器优先级的分类是什么
    这篇文章主要讲解了“CSS选择器优先级的分类是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS选择器优先级的分类是什么”吧!一、优先级的分类我们可以把 CSS 的优先级从高到低来分成...
    99+
    2023-06-27
  • css选择器优先级是什么意思
    这篇文章主要介绍“css选择器优先级是什么意思”,在日常操作中,相信很多人在css选择器优先级是什么意思问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”css选择器优先级是什么意思”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-20
  • css中什么是层叠?优先级浅析
    CSS层叠是指多个CSS样式应用到同一个HTML元素时,浏览器如何决定哪个样式将被使用。这个过程被称为“层叠”。在CSS中,每个样式都有一个优先级,以确定在相同元素上定义的不同样式之间的使用顺序。这些优先级规则是:!important的样式...
    99+
    2023-05-14
  • CSS优先级的两种理解方式是什么
    这篇文章将为大家详细讲解有关CSS优先级的两种理解方式是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。方式一:值相加 我们先去MDN看看官方的解释:优先级是如何计算的?优先级就是分配给指定的...
    99+
    2023-06-08
  • 什么是中断优先级
    中断优先级是指在多个中断请求同时出现时,确定哪个中断请求应该被处理的顺序。当多个中断请求同时到达时,系统需要根据中断优先级来确定先处理哪个中断。中断优先级是指在多个中断请求同时出现时,确定哪个中断请求应该被处理的顺序。当多个中断请求同时到达...
    99+
    2023-08-17
  • 中断优先级是干什么的
    中断优先级的作用是确定在多个中断请求同时到达时,系统应该首先处理哪个中断请求,当多个设备或事件同时向计算机发送中断请求时,中断优先级用于确定哪个中断应该被处理,以保证系统能够正确地响应和处理各种中断事件。中断优先级的作用是确定在多个中断请求...
    99+
    2023-08-17
  • SpringBoot的配置优先级是什么
    本篇内容主要讲解“SpringBoot的配置优先级是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot的配置优先级是什么”吧!SpringBoot里的官方文档叫做Extern...
    99+
    2023-06-04
  • C#线程优先级是什么
    本篇内容主要讲解“C#线程优先级是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#线程优先级是什么”吧!C#线程优先级的必要性:如果在应用程序中有多个线程在运行,但一些线程比另一些线程重要...
    99+
    2023-06-17
  • CSS优先权规则是什么
    本篇内容介绍了“CSS优先权规则是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!HTML高级技巧:详解...
    99+
    2022-10-19
  • css优先选择权是什么
    小编给大家分享一下css优先选择权是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 首先就是CSS规则的speci...
    99+
    2022-10-19
  • SAP UI configuration determination的优先级是什么
    本篇内容主要讲解“SAP UI configuration determination的优先级是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SAP UI configuration det...
    99+
    2023-06-04
  • CSS中优先级的示例分析
    这期内容当中小编将会给大家带来有关CSS中优先级的示例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。计算优先级优先级是根据由每种选择器类型构成的级联字串计算而成的。他...
    99+
    2022-10-19
  • 怎么使用CSS的!important改变优先级
    这篇文章主要为大家展示了“怎么使用CSS的!important改变优先级”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么使用CSS的!important改变优...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作