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日

相关文章

  • discuz文件结构详解,discuz模板文件介绍

    Discuz是一款常见的BBS社区软件,为了更好地了解和使用Discuz,我们需要掌握其文件结构和模板文件的相关知识。 Discuz文件结构详解 Discuz的文件结构大致如下: ├── API/ ├── attachment/ ├── config/ ├── data/ ├── include/ ├── install/ ├── jsscript/ ├──…

    css 2023年6月10日
    00
  • table-cell完成左侧定宽,右侧定宽及左右定宽等布局的实现方法

    使用table-cell布局是一种简单而强大的网页布局技术,可以实现左侧定宽、右侧定宽以及左右都定宽的布局。以下是实现这些布局的步骤: 左侧定宽,右侧自适应布局 可以通过将左右两个区块设置为表格单元格,并使用CSS的width属性和display属性对区块进行设置。 HTML结构: <div class="container"&gt…

    css 2023年6月10日
    00
  • jQuery实现弹窗下底部页面禁止滑动效果

    下面是详细的攻略: 需求描述 在使用弹窗作为页面交互组件的时候,我们通常需要禁止页面在弹窗打开的过程中滑动。本文将介绍使用 jQuery 实现在弹窗弹出的同时禁止页面的滑动,并在弹窗关闭后恢复页面的滑动。 实现思路 实现这个效果主要分为以下两个步骤: 在弹窗弹出的时候,为 body 添加一个 overflow: hidden 样式,并记录当前的滚动位置; 在…

    css 2023年6月10日
    00
  • 影响jQuery使用的14个方面

    影响jQuery使用的14个方面 1. jQuery版本 使用不同版本的jQuery可能会有差异,在使用中需要注意版本兼容性,保证所使用的插件与版本适配。 2. 引入方式 正确的引入jQuery是保证jQuery可用的基础,需要遵循CDN、本地文件同时存在的规则,保证引用的jQuery文件能被正确加载。 3. 加载顺序 jQuery与其它库、框架的引入顺序会…

    css 2023年6月9日
    00
  • css filter和getUserMedia的联合使用

    CSS filter 是一种很常用的前端技术,通过调整不同的滤镜参数,可以让图片、视频等多媒体元素变得更加生动、丰富。getUserMedia则是一个 JavaScript API,可以用来访问电脑或移动设备上的摄像头和麦克风,让网页可以进行实时的视频/音频播放、录制、推流等操作。css filter和getUserMedia的联合使用则让开发者可以更加灵活…

    css 2023年6月11日
    00
  • 在 React 中使用 Redux 解决的问题小结

    在React中使用Redux可以解决以下问题: 多个组件需要共享的状态管理 需要管理复杂的组件状态 状态需要可以被时间旅行(Time Travel)调试 以下是使用Redux的完整攻略: 安装 Redux 首先需要在项目中安装Redux,可以使用npm或者yarn。示例命令如下: npm install redux yarn add redux 创建 Red…

    css 2023年6月10日
    00
  • CSS导航栏及弹窗示例代码

    针对“CSS导航栏及弹窗示例代码”的完整攻略,以下是详细的讲解。 CSS导航栏的制作 HTML代码结构 首先需要创建一个HTML文档,并在其中设置导航栏需要的HTML结构。一般来说,导航栏分为三大部分:左侧LOGO/品牌名称、中间菜单导航、右侧用户信息或其他附加项。此处我采用典型的bootstrap导航栏HTML结构,示例如下: <nav class=…

    css 2023年6月9日
    00
  • HTML设置超链接字体颜色和点击后的字体颜色

    HTML的超链接是网页制作中非常常用的元素,超链接字体颜色和点击后字体颜色是影响页面美观度的重要因素。下面是详细讲解“HTML设置超链接字体颜色和点击后的字体颜色”的完整攻略。 设置超链接字体颜色 通过style属性来设置超链接字体颜色。 html <a href=”http://www.example.com” style=”color:blue;”…

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