CSS选择器的权重与优先规则分享

下面是关于CSS选择器权重与优先级的完整攻略:

CSS选择器权重

当多个CSS规则同时作用于同一个元素时,浏览器需要决定应该按照哪个规则来应用样式。为了实现这个目的,CSS定义了选择器的权重,每个规则都按照特定的规则计算出一个特定的权重值。常见的选择器权重如下所示:

  • !important = Infinity
  • 行内样式(style) = 1000
  • ID选择器(#id) = 100
  • 类选择器(class),属性选择器,伪类(:hover, :focus, :active) = 10
  • 元素选择器和伪元素(::before, ::after) = 1
  • 通配符(*),相邻选择器(+,-),子选择器(>),后代选择器( ) = 0

CSS选择器优先级

当多个选择器的权重值相同时,CSS通过选择器的优先级来确定应该按照哪个规则来应用样式。当两个或多个选择器的权重值相同时,按照以下优先级顺序来决定应该应用哪个样式:

  • 以!important声明的样式优先级最高;
  • 根据权重值大小决定,权重值大的优先级高;
  • 同一选择器中,靠近元素的样式声明优先级高;
  • 同一规则中,后声明的样式优先级高;
  • 通配选择器( * )和 :not()对优先级没有影响。

下面举例说明:

示例一

<!DOCTYPE html>
<html>
<head>
  <style>
    /* 权重值为10 */
    p.red {
      color: red;
    }
    /* 权重值为1 */
    p {
      color: blue;
    }
  </style>
</head>
<body>
  <p class="red">Hello World</p>
</body>
</html>

上述示例中,选择器p.red和选择器p都能够作用于"Hello World"这个段落,但是p.red具有更高的选择器权重,因此这个段落将会被设置成红色。如果想要让权重相同的两个选择器中的样式生效,需要按照优先级顺序进行设置,例如,把p样式的位置调到p.red的前面:

  <style>
    /* 权重值为1 */
    p {
      color: blue;
    }
    /* 权重值为10 */
    p.red {
      color: red;
    }
  </style>

示例二

<!DOCTYPE html>
<html>
<head>
  <style>
    /* 权重值为10 */
    p#myId {
      color: red;
    }
    /* 权重值为1 */
    #myId p {
      color: blue;
    }
  </style>
</head>
<body>
  <p id="myId">Hello World</p>
</body>
</html>

上述示例中,选择器p#myId具有更高的选择器权重,因此这个段落将会被设置成红色。即使选择器#myId p写在前面,也不会改变颜色的显示。

总之,理解CSS选择器的权重和优先级是CSS中关键的基础之一,在编写样式时需要仔细考虑。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CSS选择器的权重与优先规则分享 - Python技术站

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

相关文章

  • CSS3等相关属性制作分页导航实现代码

    下面我将为您详细讲解“CSS3等相关属性制作分页导航实现代码”的完整攻略。 1. 布局设计 首先,我们需要为分页导航设计一个基本的布局。一般情况下,我们可以采用<ul> <li>标签组合的方式来实现分页导航,如下所示: <ul class="pagination"> <li><a hr…

    css 2023年6月9日
    00
  • 表格边框以虚线显示的css样式

    要让表格边框以虚线显示,可以通过CSS样式进行控制。 一种方式是通过设置border-style属性为dashed或者dotted来使表格边框呈现虚线的样式,同时设置border-width属性来控制边框宽度,示例如下: table { border-collapse: collapse; } td, th { border: 1px dashed #ccc…

    css 2023年6月10日
    00
  • Webpack中loader打包各种文件的方法实例

    下面来详细讲解 Webpack 中 loader 打包各种文件的方法实例。 1. 什么是 loader? 在使用 Webpack 时,我们通常需要对各种文件进行打包,比如 CSS、图片、字体、Markdown 等等。而这些文件在打包时,都需要通过 loader 进行处理。 Loader 是 Webpack 中比较重要的概念,它可以将非 JavaScript …

    css 2023年6月10日
    00
  • CSS教程:使用ul进行网页的多列布局

    下面是关于“CSS教程:使用ul进行网页的多列布局”的完整攻略,分以下几个部分进行讲解。 一、背景介绍 在网站设计与开发中,网页的布局是一个非常重要的环节。而在多数情况下,我们需要实现的是多列布局。在CSS中,我们可以使用多种方式来实现多列布局,其中比较简便的一种方式是通过ul和li标签进行布局,从而实现多列效果。 二、实现步骤 实现多列布局的基本步骤如下:…

    css 2023年6月10日
    00
  • 使用Div+CSS纯图片实现圆角矩形的方法小结

    对于该主题,“使用Div+CSS纯图片实现圆角矩形的方法小结”,我们需要分几个方面进行讲解: 理解圆角矩形的原理,确定页面需求; 基于需求,使用CSS设置对应的样式; 利用CSS Sprites技术实现纯图片圆角矩形; 在实际运用中优化处理。 下面就具体的讲一下。 圆角矩形的原理 圆角矩形是指矩形的四个边角被设计成圆弧的一种界面效果。实现圆角矩形的方法非常多…

    css 2023年6月10日
    00
  • css中 中文字体相关知识汇总

    以下是针对“CSS中 中文字体相关知识汇总”的详细讲解: 目录 CSS中中文字体选择的方式 关于中文字体的fallback机制 中文网页中常用的中文字体 补充说明 CSS中中文字体选择的方式 在CSS中,表示中文字体的属性是font-family,它的取值要使用引号括起来。常用的选择中文字体的方式为: font-family: "宋体",…

    css 2023年6月9日
    00
  • 纯CSS实现鼠标悬停提示的方法

    “纯CSS实现鼠标悬停提示的方法”是一种常用的前端技术,它可以使网站更美观,更易用,本文将详细讲解如何实现。 什么是鼠标悬停提示? 鼠标悬停提示是指当用户把鼠标放在一个元素上时,自动弹出一个提示框来提示用户相关信息。 用法 要使用鼠标悬停提示,我们需要使用CSS的:hover选择器来实现。 实现方法 方法一: 使用title属性 a:hover::after…

    css 2023年6月10日
    00
  • 纯js实现瀑布流展现照片(自动适应窗口大小)

    实现瀑布流展现照片是一个常见的前端面试题目,这里提供一种利用纯JS实现瀑布流展现照片并自适应窗口大小的方法。实现该方法需要完成以下步骤: 1.根据窗口大小计算瀑布流展示区的宽度、每个卡片的宽度、每行可容纳的卡片个数和卡片间的间隔大小等几个参数,并将它们存储在一个变量对象中。同时,动态创建卡片,并根据图片大小将图片缩放至卡片容器大小。示例代码如下: let c…

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