CSS优先级计算的规则

yizhihongxing

CSS的优先级计算规则(CSS specificity calculation)是用来决定在多个CSS规则中哪个具有更高的优先级的计算方式。以下是优先级计算的规则:

  1. 选择器分配的优先级值,每个选择器都有自己的优先级值。

    • 对于一个选择器来说,ID选择器 的优先级最高,它的优先级值为100
    • 对于一个选择器来说,class选择器属性选择器伪类 的优先级值为10
    • 对于一个选择器来说,标签选择器伪元素 的优先级值为1
    • 所有选择器的优先级都小于任何具有 !important 声明的属性。
  2. 如果两个或多个选择器的优先级值相等,则可以根据下列规则判断哪个规则更具体并优先应用:

    • 如果选择器中包含了一个ID选择器,则此选择器更具体。
    • 如果选择器中包含了一个class选择器/属性选择器/伪类,则此选择器更具体。
    • 如果选择器中包含了一个标签选择器/伪元素,则此选择器更具体。
    • 如果选择器中包含了多个相同类型的选择器,则优先级相等,最内层的选择器最具体。
  3. 计算完所有选择器的优先级值之后,将所有选择器的优先级值加起来,得到它们的总优先级。

  4. 如果两个或多个规则的总优先级相等,则后面的规则将覆盖前面的规则。

以下是两个基于优先级计算的示例:

<!DOCTYPE html>
<html>
<head>
<style>
  /* 第一个选择器:ID选择器具有最高级别的优先级 */
  #first {
    color: red;
  }
  /* 第二个选择器:选择器中包含ID选择器, 2个class选择器及一个属性选择器,总优先级为122 */
  .second div#first.red.orange[type='submit'] {
    color: blue; 
  }
</style>
</head>
<body>
  <div id="first" class="red orange">First Text</div> 
  <div class="second">
    <div id="first" class="red orange">
      Second Text with blue color
    </div>
  </div>
</body>
</html>

根据上面的代码,第二个div元素将具有 Second Text with blue color 文本,因为 .second div#first.red.orange[type='submit'] 的优先级比 #first 更高。

<!DOCTYPE html>
<html>
<head>
<style>
  #id1 {
    color: red; 
  }
  .class1 {
    color: green; 
  }
  div {
    color: blue; 
  }
</style>
</head>
<body>
  <div id="id1" class="class1">Text</div>
</body>
</html>

在上例中,元素<div>的文本变为 blue,因为选择器 div 的优先级比 #id1.class1 的优先级都低,所以先应用了 color: blue

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CSS优先级计算的规则 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 网页设计经验之杜绝设计中的视觉噪音(图文)

    网页设计中,视觉噪音是指过度复杂、过度花哨或过于杂乱的设计元素所带来的视觉干扰,使得用户难以关注主要内容并影响用户体验。因此,杜绝视觉噪音是一项关键的网页设计经验。以下是完整攻略。 1. 确定设计主题 在网页设计之前,要先确定设计主题,确保主题与网站的目的、用户类型和品牌理念相符。一个清晰简洁的主题可以帮助你将视觉元素保持在一个有限的范围内,以避免视觉噪音。…

    css 2023年6月10日
    00
  • Dreamweaver中div标签怎么设置左右并排?

    在 Dreamweaver 中,我们可以使用 CSS 来设置 div 标签左右并排。下面是一个完整攻略,包含了如何使用 CSS 来设置 div 标签左右并排的过程和两个示例说明。 Dreamweaver 中 div 标签左右并排的设置 1. 使用 float 属性 我们可以使用 float 属性来设置 div 标签左右并排。下面是一个示例: <div …

    css 2023年5月18日
    00
  • 纯css实现立体摆放图片效果的示例代码

    下面是“纯css实现立体摆放图片效果”的攻略。 1. 准备图片资源 首先,在网站目录下准备多张图片资源,作为实现立体效果的图片。图片的格式可以是jpg、png等。 2. 新建html文件 在网站目录下新建一个html文件,以便将来在其中实现立体效果。可以在文件中添加一个div容器。 <!DOCTYPE html> <html> &lt…

    css 2023年6月10日
    00
  • 通过CSS规则禁止选中文字的实现代码

    要禁止选中文字,可以使用CSS中的user-select属性,其控制用户是否能够选择文本区域。下面是实现该效果的代码: -webkit-user-select: none; /* for Chrome, Safari, and Opera */ -moz-user-select: none; /* for Firefox */ -ms-user-select…

    css 2023年6月9日
    00
  • 详解CSS3浏览器兼容

    详解CSS3浏览器兼容的完整攻略 什么是CSS3浏览器兼容问题? CSS3作为CSS的更新版本,引入了众多新特性,如圆角、阴影、变形等,但这些新特性并非所有浏览器都兼容。因此,在开发中,经常会遇到CSS3属性在不同浏览器下显示效果的差异,这就是CSS3浏览器兼容问题。 如何解决CSS3浏览器兼容问题? 1. 使用厂商前缀(Vendor Prefix) CSS…

    css 2023年6月9日
    00
  • 基于jquery的横向滚动条(滑动条)

    下面我来讲解“基于jquery的横向滚动条(滑动条)”的完整攻略。 简介 在很多网站的页面设计中,会使用到横向滚动条(滑动条),用于展示大量的图片、横向长表格等内容。而本文将介绍如何利用jquery实现一个美观且实用的横向滑动条。 准备工作 在开始实现之前,请确保已经引入jquery库文件,并且已经编写好了html和css代码。 实现步骤 1. 编写html…

    css 2023年6月10日
    00
  • DIV设置float后父容器无法定位高度的问题解决方法

    当子元素设置了float属性之后,父元素就会无法自适应子元素高度,导致页面布局错误。针对这个问题,一般有以下几种解决方法: 1. 使用CSS的clear属性 当子元素设置float属性时,可以在父元素中添加一个空的块元素,然后给这个块元素添加CSS的clear属性,属性值设置为both,就可以清除子元素的浮动影响,让父容器自适应高度。 示例代码: <d…

    css 2023年6月10日
    00
  • jquery实现metro效果示例代码

    jquery实现metro效果示例代码的完整攻略如下: 1. 确定效果与需求 首先要明确的是,什么是metro效果。Metro UI风格是一种以颜色鲜艳、图标化、大面板布局为主要特征的UI设计风格。因此,实现metro效果的关键因素包括布局、颜色、图标等。 针对这些核心需求,我们可以采用定制化的HTML样式,配合javascript实现大面板、颜色鲜艳、图标…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部