css 样式加载的优先级使用经验分享

yizhihongxing

以下是CSS样式加载优先级的攻略:

一、优先级的定义

CSS样式的优先级是指多个样式应用于同一个元素时,针对该元素的不同CSS属性该如何去选择应用哪个样式规则的算法。CSS优先级是一个重要的概念,可以影响到应用于元素的所有CSS属性的顺序。

二、优先级的计算

计算CSS样式的优先级,可以根据以下三个方面来解决。

  1. 第一规则,样式优先级由高到低分别为:内联样式 > ID选择器 > 类/属性/伪类选择器 > 元素/伪元素选择器。

  2. 第二规则,特殊性从高到低,如下:

    1. 1,0,0,0(内联样式)
    2. 0,1,0,0(ID选择器)
    3. 0,0,1,0(类/属性/伪类选择器)
    4. 0,0,0,1(元素/伪元素选择器)
  3. 第三规则,后者优先。

这三点规则的组合用于计算每个样式规则的优先级,以便CSS引擎决定应该将哪个样式规则应用于给定的元素。

我们可以将每个规则发挥作用的位置(例子1),并根据计算的总值(例子2)来比较它们的优先级。

例子1

/* 样式1 */
p {
  color: #000;
}

/* 样式2 */
p.highlight {
  color: green;
}

/* 样式3 */
#id1 {
  color: red;
}

/* 样式4 */
p, li {
  color: blue;
}

在使用上述选择器时,应了解以下元素被应用时对应用样式的影响。比较后的结果是:

1. 样式3 > 样式2 > 样式4 > 样式1

例子2

假设以下样式规则应用于一个元素:

p {
  color: #000;
}
#id1 {
  color: red;
}
p.highlight {
  color: green;
}
span, .specialClass {
  color: blue;
}

计算后的规则为各组成特殊性值的格式如下:

- 第一个消除步骤,消除问题,每个都设为0;
- 第二个消除步骤,则从左到右比较。
选择器 特殊性(0,0,0,1) 特殊性(0,1,0,0) 特殊性(0,0,1,1) 特殊性(0,0,0,2)
p 0 0 0 1
#id1 0 1 0 0
p.highlight 0 0 0 2
span 0 0 0 1
.specialClass 0 0 1 0

总的特殊性值是:

0,1,1,4

因此,规则p.highlight优先级最高,其次是#id1,然后是.specialClass,最后是p

三、结论

1.应避免使用“! important”规则

尽管它可以简化样式操作,但有时会给解决问题增加引用属性。更重要的是,其优先级超过内联样式,无论如何,它都更难调整和更难以重写所有其他固有优先级。

2.合理使用类选择器和属性选择器

避免滥用ID选择器和内联标签,这是拥有最高优先级的CSS选择器类型。相反,建议使用类选择器和属性选择器,例如“input[type=”text”]”,以避免优先级冲突。

3.缩小选择器范围

缩小规则应用的范围,例如使用后代选择器,避免选择器的顺序重复使用同一目标元素,它们的优先级最高。

4.使用继承来代替元素选择器

对于具有相同属性的一组元素,将自身属性与继承的属性组合造成优先级的冲突。因此,建议使用具有完全继承样式的祖先元素的元素选择器,例如“ul li”,而不使用排除继承属性。

四、总结

请尝试合理使用CSS选择器,并理解CSS优先级的一般规则。确保您的CSS样式不仅看起来不错,而且带有较低的冲突程度,并且尽可能避免使用! important规则,因为它会过分增加或杀死特定规则的优先级变量,这可能使您无法轻松修改样式表。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:css 样式加载的优先级使用经验分享 - Python技术站

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

相关文章

  • python3之Splash的具体使用

    python3之Splash的具体使用 什么是Splash? Splash是一个JavaScript渲染服务,它使用了Webkit浏览器来呈现网页,并提供了一个Lua脚本接口来实现自动化操作。 安装和启动Splash 安装Docker。 bash sudo apt-get update sudo apt-get install docker.io 获取Spl…

    css 2023年6月10日
    00
  • webpack css加载和图片加载的方法示例

    下面是详细讲解“webpack css加载和图片加载的方法示例”的完整攻略: 一、Webpack中CSS加载 CSS是网站中不可避免的一部分。在Webpack中,我们可以使用CSS-loader来加载CSS。 1. 安装CSS-loader 在项目文件夹中运行以下命令来安装CSS-loader: npm install –save-dev css-load…

    css 2023年6月9日
    00
  • 如何设置单词字体间距 css设置字体间距样式代码

    以下是关于“如何设置单词字体间距 CSS设置字体间距样式代码”的完整攻略,包含两个示例说明。 方法一:使用letter-spacing属性 可以使用CSS的letter-spacing属性来设置单词之间的字体间距。可以按照以下步骤操作: 在CSS文件中,使用letter-spacing属性来设置单词之间的字体间距。例如: p { letter-spacing…

    css 2023年5月18日
    00
  • 如何解决外边距margin叠加的问题探讨

    下面是“如何解决外边距margin叠加的问题探讨”的完整攻略。 问题探讨 外边距margin叠加是指当两个相邻的元素具有相同的方向的外边距时,会出现两个边框之间外边距的加合大于单个边框的情况。 例如,当两个垂直方向相邻的元素分别具有30px和50px的外边距时,它们之间的外边距为50px,而不是30px+50px=80px。 这种现象在页面布局中经常会出现,…

    css 2023年6月10日
    00
  • 关于CSS中 星号*的使用介绍

    CSS中星号(*)的使用介绍 星号(*)是CSS中的通配符,它可以应用到任何元素。使用星号可以实现一些非常有用的功能,例如选择某一个元素下的所有子元素或者选择所有元素。 选择所有元素 如果要给所有元素添加通用的样式,可以使用星号通配符,如下所示: * { margin: 0; padding: 0; } 这将把所有元素的外边距和内边距都设置为0,这是很多网站…

    css 2023年6月10日
    00
  • 5分钟让你掌握css3阴影、倒影、渐变小技巧(小编推荐)

    5分钟让你掌握CSS3阴影、倒影、渐变小技巧 介绍 本教程将向你展示如何使用CSS3的阴影、倒影、渐变等小技巧来美化你的网站页面。通过学习这些技巧,你可以让你的网站看起来更加炫酷、专业。 阴影 CSS3的阴影属性可以为任何元素添加阴影效果。你可以通过使用box-shadow属性来实现这个效果。box-shadow有四个参数:水平位置、垂直位置、模糊半径和颜色…

    css 2023年6月9日
    00
  • JS+CSS实现一个气泡提示框

    作为网站作者,我很乐意为大家详细讲解JS+CSS实现一个气泡提示框的完整攻略。下面是具体步骤: 步骤一:HTML结构搭建 首先,我们需要在HTML中先准备好一个触发动作的元素,例如一个按钮,代码如下: <button class="btn">点击我</button> 步骤二:CSS美化元素 然后,我们需要对该元素做…

    css 2023年6月10日
    00
  • js CSS操作方法集合

    JavaScript CSS 操作方法集合 概述 JavaScript 可以通过操作 DOM 来实现对 HTML 和 CSS 的操作。下面总结了一些常见的 JavaScript 操作 CSS 的方法。 1. 获取/设置 CSS 样式 获取元素的 CSS 样式 可以通过 getComputedStyle 方法来获取一个元素的样式: const element …

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