CSS优先级内容

定义CSS样式时,经常出现两个或多个样式规则应用在同一元素的情况,这时就会出现优先级的情况,那么应用的元素应该显示哪一个样式呢?

一.下面举例对优先级进行具体讲解。

p{color:red;}

.blue{color:orange;}

#header{color:blue;}

对应的HTML结构为:

p<id=”header”  class=”blue”>

在上面的例子中,使用不同的选择器对同一个标签设置文本颜色,这时选择器会根据选择器优先级规则解析CSS样式。其实CSS为每一种选择器都分配了一个权重,可以通过数值为其匹配数值。假如标签选择器权重为1,类选择器权重可以为10,id选择器权重为100,这样id 选择器就具有最大优先级,因此文本显示为蓝色。

对于由多个基础选择器组成的复合选择器(并集选择器除外),其权重为这些基础选择器权重的叠加。例如下面的代码:

p strong{color:black;}                  /* 权重为1+1*/

strong .blue{color:green;}               /*权重为1+10*/

.father strong{color:yellow;}            /*权重为10+1*/

p .father strong{color:orange;}          /*权重为1+10+1*/

p ,father .blue{color:gold;}             /*权重为1+10+10*/

#header  strong{color:pink;}          /*权重为100+1*/

#header  strong.blue{{color:red;}      /*权重为100+1+10*/

对应的HTML结构为:

<p class=”father”  id =”header”>

<strong class=”blue”>文本的颜色</strong>

</p>

这时页面将应用权重最高的文本颜色,即红色。

注意:继承样式的权重为0。即在嵌套结构中,不管父元素样式的权重有多大,被子元素继承时,它的样式都为0,也就是说子元素定义的样式会覆盖继承来的样式。

例如下面的代码:

strong{color:red;}

#header{color:green;}

<p id=”header” class=”blue”>

<strong>继承样式不如自己定义</strong>    

</p>

在上面的代码中,虽然#header的权重为100,而strong的权重为1,但是继承过来的样式权重为0,因此strong的权重要大过#header,即继承样式的权重,所以页面显示的代码是红色。

注意:1.行内样式优先。应用style属性的元素,其行内样式的权重非常高,可以理解为远大于100.总之,它的权重远大于上面所提及的选择器都大。

2.权重相同时,CSS遵循就近原则。也就是说靠近元素的样式具有最大的优先级,或者说排在最后的样式优先级最大。

我们用两个案例来理解就近原则。

(1)案例1:如果没有用链入的外部样式,而是用内嵌式同时引用两个外部样式表,那么排在前面的样式具有较大的优先级还是后面的具有较大的优先级呢?先写代码,如图1  

图1

保存并运行如图2

图2

*由图2可知,两个内嵌式在HTML页面中,后面那个更具有优先级,而不是前面那个。

(2)案列2:使用外链式将其中一个样式引进去,另外一个则是内嵌式在源代码中,那么页面中显示的文本内容是外部样式设置的颜色还是内嵌式设置的颜色呢?

先写代码,如图3

图3

外部样式CSS代码如图4

图4

保持代码运行如图5

图5

*由图5显示页面文本为黑色可知,是内嵌式优先。这是因为内嵌式要比链入的外部样式更靠近HTML元素。

3.<!important>命令

该命令被赋予最大的优先级,也就是说不管权重的大小、位置的远近,使用<!important>标签都具有最大的优先级。下面我们通过两个案例来演示一下<!important>命令的使用方法。

(1)案例1:先写代码,如图6

图6

链式引入的CSS样式如图7

图7

保存并运行如图8

图8

*我们知道一般是行内样式优先或者是就近原则,但是在图8中,外部样式使用了!<improtant>命令,因此页面中文本显示的颜色为红色,而不是显示行内样式赋予的颜色。

(2)案例2:我们不用将样式链入进来,而是使用内嵌式和行内样式。将<! Important>命令添加到第一个内嵌样式中,先写代码,如图9

图9

保存并运行如图10

图10

*我们可以发现不论是案例1还是案例2,只要样式使用了<!important>命令,该样式具有最大的优先级。但是要注意该命令必须位于属性值和分号之间,否则无效。

4.复合选择器权重的叠加

(1)首先复合选择器权重的叠加并不是简单的数字之和。下面通过一个案例来演示一下。

先写代码,如图11.

图11

在图11中,我们知道如果只将基础选择器的权重相加,那么后代选择器,即11对<div>标签的权重是11,而类选择器的权重为10,那么页面会显示下划线还是显示删除线呢?

(2)我们将代码保存并运行如图12

图12

*从图12可以看出,文本显示的是类选择器所设置的删除线而不是下划线,这说明类选择器.inner大于后代选择器div<div><div><div><div><div><div><div><div><div><div>.。无论在外层添加多少个div,即复合选择器权重无论为多少个标签选择器权重的叠加,都不会高于类选择器。同理,复合选择器的权重无论为多少个类选择器和标签选择器权重的叠加,都不会高于id选择器。

5.以上就是CSS优先级内容,下期我们讲宣传页面案例是怎样运用CSS选择器、CSS文本相关样式及高级特性实现的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/434547.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Vue】1-2、Webpack 中的插件

一、Webpack 插件的作用 通过安装和配置第三方的插件&#xff0c;可以拓展 webpack 的能力&#xff0c;从而让 webpack 用起来更方便。 二、两个常用插件 1&#xff09;webpack-dev-server 类似于 node.js 使用的 nodemon 工具 每当修改了源代码&#xff0c;webpack 会自动…

市场复盘总结 20240126

仅用于记录当天的市场情况&#xff0c;用于统计交易策略的适用情况&#xff0c;以便程序回测 短线核心&#xff1a;不参与任何级别的调整&#xff0c;采用龙空龙模式 昨日主题投资 连板进级率 27/105 25.7% 二进三&#xff1a; 进级率低 50% 最常用的二种方法&#xff1a; 方…

QT + opengl 环境搭建(glfw, glad),创建一个简单窗口

一.下载glfw&#xff0c;glad并编译 1.glfw个人理解就是对底层opengl的一些基本接口的封装&#xff0c;提供了一些渲染物体所需的最低限度的接口。它允许用户创建OpenGL上下文、定义窗口参数以及处理用户输入。glfw的下载地址&#xff1a;Download | GLFW&#xff0c;下载完成后…

Qt编写手机端视频播放器/推流工具/Onvif工具

一、视频播放器 同时支持多种解码内核&#xff0c;包括qmedia内核&#xff08;Qt4/Qt5/Qt6&#xff09;、ffmpeg内核&#xff08;ffmpeg2/ffmpeg3/ffmpeg4/ffmpeg5/ffmpeg6&#xff09;、vlc内核&#xff08;vlc2/vlc3&#xff09;、mpv内核&#xff08;mpv1/mp2&#xff09;、…

设计模式分类

常用的设计模式有哪些&#xff1f; 常用的设计模式通常按照创建型、结构型和行为型三大类别来划分&#xff0c;以下是每个类别中的一些常见设计模式&#xff1a; 创建型&#xff08;Creational Patterns&#xff09;&#xff1a; 单例模式&#xff08;Singleton Pattern&…

Ultraleap 3Di新建项目之给所有的Joint挂载物体

工程文件 Ultraleap 3Di给所有的Joint挂载物体 前期准备 参考上一期文章&#xff0c;进行正确配置 Ultraleap 3Di配置以及在 Unity 中使用 Ultraleap 3Di手部跟踪 新建项目 初始项目如下&#xff1a; 新建Create Empty 将新建的Create Empty&#xff0c;重命名为LeapPro…

[SWPUCTF 2021 新生赛]easyapp

下载得到一个附件 查壳后面就写一个apk&#xff0c;丢进java反编译也没辙 010看下文件头 ZIP Archive (zip)&#xff0c;文件头&#xff1a;50 4B 03 04 ascii码部分是PK&#xff0c;可以直接根据PK判断是zip文件&#xff0c;也有可能是doc文件 rar文件: 52 61 72 21 7z文件头…

eclipse print

eclipse print 这个功能一般很少用&#xff0c;编制文档的时候&#xff0c;经常会用到&#xff0c;保存图片和PDF ADF打印机 我找了下我的win10没有那个图片的打印机 保存为PDF 这个序号很讨厌的&#xff0c;如果从PDF上复制下来的到文本等等&#xff0c;带序号&#xff0c;程…

幻兽帕鲁服务器多少钱?4核16G支持32人在线吗?

4核16G服务器是幻兽帕鲁Palworld推荐的配置&#xff0c;阿里云和腾讯云均推出针对幻兽帕鲁的4核16G服务器&#xff0c;阿里云4核16G幻兽帕鲁专属服务器32元1个月、66元3个月&#xff0c;腾讯云4核16G14M服务器66元1个月、277元3个月、1584元一年。云服务器吧yunfuwuqiba.com分享…

pytorch-metric-learning度量学习工具官方文档翻译

基于Pytorch实现的度量学习方法 开源代码&#xff1a;pytorch-metric-learning官网文档&#xff1a;PyTorch Metric Learning官方文档 度量学习相关的损失函数介绍&#xff1a; 度量学习DML之Contrastive Loss及其变种度量学习DML之Triplet Loss度量学习DML之Lifted Structu…

【Linux】进程通信——管道

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;折纸花满衣 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;【LeetCode】winter vacation training 目录 &#x1f4cb;进程通信的目的&#x1f4cb;管道匿名管道pipe函数创…

Linux中的软链接与硬链接

Linux链接概念 Linux链接分两种&#xff0c;一种被称为硬链接&#xff08;Hard Link&#xff09;&#xff0c;另一种被称为符号链接&#xff08;Symbolic Link&#xff09;。默认情况下&#xff0c;使用 ln 命令不加参数创建硬链接&#xff0c;加 -s 参数则创建软链接 硬链接…