CSS优先级内容

news2024/10/5 16:19:58

定义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.coloradmin.cn/o/1415482.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenCV-27 Canny边缘检测

一、概念 Canny边缘检测算法是John F.Canny与1986年开发出来的一个多级边缘检测算法&#xff0c;也被很多人认为是边缘检测的最优算法。最优边缘检测的三个主要评价标准是&#xff1a; 低错频率&#xff1a;表示出尽可能多的实际边缘&#xff0c;同时尽可能的减小噪声产生的误…

Spring源码分析:refresh()

refresh()中共有13个方法&#xff0c;分别为 1.prepareRefresh() 容器刷新前的准备&#xff0c;设置上下文状态&#xff0c;获取属性&#xff0c;验证必要的属性等 protected void prepareRefresh() {//spring启动时间this.startupDate System.currentTimeMillis();//spring…

01 Redis的特性+下载安装启动+Redis自动启动+客户端连接

1.1 NoSQL NoSQL&#xff08;“non-relational”&#xff0c; “Not Only SQL”&#xff09;&#xff0c;泛指非关系型的数据库。 键值存储数据库 &#xff1a; 就像 Map 一样的 key-value 对。如Redis文档数据库 &#xff1a; NoSQL 与关系型数据的结合&#xff0c;最像关系…

Python如何获取程序打包后的目录,如何获取管理员权限

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 实现步骤 📒📝 获取程序打包后所在目录📝 获取管理员权限⚓️ 相关链接 ⚓️📖 介绍 📖 Python 是一种功能强大的编程语言,本篇文章将介绍Python如何获取程序打包后所在目录,以及如何获取管理员权限并执行需要管理…

【深度学习】sdxl中的 tokenizer tokenizer_2 区别

代码仓库&#xff1a; https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/tree/main 截图&#xff1a; 为什么有两个分词器 tokenizer 和 tokenizer_2&#xff1f; 在仔细阅读这些代码后&#xff0c;我们了解到 tokenizer_2 主要是用于 refiner 模型的。 #…

javax.servlet.http包

javax.servlet.http包 javax.srvlet.http包是对javax.servlet包的扩展。该包的类和接口处理使用HTTP进行通信的servlet。这些servlet也称为HTTP Servlet。您需要扩展HttpServlet类来开发HTTP Servlet。javax.servlet.http包经常使用的接口包括: HttpServletRequest接口HttpSe…

Windows10上通过MSYS2编译FFmpeg 6.1.1源码操作步骤

1.从github上clone代码&#xff0c;并切换到n6.1.1版本&#xff1a;clone到D:\DownLoad目录下 git clone https://github.com/FFmpeg/FFmpeg.git git checkout n6.1.1 2.安装MSYS2并编译FFmpeg源码: (1).从https://www.msys2.org/ 下载msys2-x86_64-20240113.exe &#…

x-cmd pkg | shtris - 命令行俄罗斯方块游戏

目录 简介首次用户技术特点竞品和相关作品进一步阅读 简介 shtris 是一个由 shell 脚本&#xff0c;参考 俄罗斯方块指南 (2009) 实现的俄罗斯方块游戏。 首次用户 使用 x shtris 即可自动下载并使用 在终端运行 eval "$(curl https://get.x-cmd.com)" 即可完成 x …

[TCP协议]基于TCP协议的字典服务器

目录 1.TCP协议简介: 2.TCP协议在Java中封装的类以及方法 3.字典服务器 3.1服务器代码: 3.2客户端代码: 1.TCP协议简介: TCP协议是一种有连接,面向字节流,全双工,可靠的网络通信协议.它相对于UDP协议来说有以下几点好处: 1.它是可靠传输,相比于UDP协议,传输的数据更加可靠…

在ubuntu上在安装Squid代理服务器

Squid 是一个代理和缓存服务器&#xff0c;它将请求转发到所需的目的地&#xff0c;同时保存请求的内容&#xff0c;当你再次请求相同内容时&#xff0c;他可以向你提供缓冲内容&#xff0c;从而提高访问速度。Squid代理服务器目前支持的协议有&#xff1a;http、SSL、DNS、FTP…

【机组】单元模块的软件简介和安装

​&#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;《机组 | 模块单元实验》⏰诗赋清音&#xff1a;云生高巅梦远游&#xff0c; 星光点缀碧海愁。 山川深邃情难晤&#xff0c; 剑气凌云志自修。 目录 【软件简介和安装】 1 性能特…

JVM篇:垃圾回收算法

标记清除 通过遍历GC Root后得到不再被引用的对象&#xff0c;对没被引用的对象做一个标记处理&#xff0c;然后对其进行清除。 优点&#xff1a;速度快 缺点&#xff1a;会产生内存碎片&#xff0c;可能会导致空闲的内存足够保存对象&#xff0c;但由于不连续而保存失败。 标…

Linux操作系统运维-用户与用户组管理

Linux操作系统运维-用户与用户组管理 用户种类与标识查看 超级用户&#xff08;root&#xff09;&#xff1a;可以不受限制地执行所有操作&#xff0c;拥有系统最高权限&#xff0c;修改系统设置与管理用户均需要root权限系统用户&#xff08;system&#xff09;&#xff1a;…

S275智慧煤矿4G物联网网关:矿山开采的未来已来

随着经济发展煤矿需求不断激增&#xff0c;矿山矿井普遍处于偏远山区&#xff0c;生产管理、人员安全、生产效率是每个矿山矿井都需要考虑的问题&#xff0c;利用网关对现场终端设备连接组网&#xff0c;实现智慧煤矿远程管理。 各矿山矿井分布范围比较广泛&#xff0c;户外环…

Leetcode541反转字符串Ⅱ(java实现)

我们今天分享的题目是字符串反转的进阶版反转字符串Ⅱ。 我们首先来看题目描述&#xff1a; 乍一看题目&#xff0c;有种懵逼的感觉&#xff0c;不要慌&#xff0c;博主来带着你分析题目&#xff0c;题目要求&#xff1a; 1. 每隔2k个字符&#xff0c;就对2k字符中的前k个字符…

【mongoDB】创建用户账号和权限

使用use database_name 命令创建或切换到一个数据库 查看用户 show users 输入该命令后&#xff0c;无数据表示该数据库没有用户 创建用户 user:" freedom " 表示用户名为freedom pwd:" 123456 ” 表示密码为123456 roles:[" root "] …

pcl之滤波器(三)

pcl滤波器 pcl一共是有十二个主要模块&#xff0c;详细了解可以查看官网。https://pcl.readthedocs.io/projects/tutorials/en/latest/#basic-usage 今天学习一下pcl的滤波器模块。 滤波器模块&#xff0c;官网一共是提供了6个例程&#xff0c;今天看第五个、第六个。 从一…

CSS设置单行文字水平垂直居中的方法

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>单行文字水平垂直居中</title><style>div {/* 给div设置宽高 */width: 400px;height: 200px;margin: 100px auto;background-color: red;/…

【深度学习每日小知识】Bias 偏差

计算机视觉是人工智能的一个分支&#xff0c;它使机器能够解释和分析视觉信息。然而&#xff0c;与任何人造技术一样&#xff0c;计算机视觉系统很容易受到训练数据产生的偏差的影响。计算机视觉中的偏见可能会导致不公平和歧视性的结果&#xff0c;从而使社会不平等长期存在。…

[GYCTF2020]Ezsqli1

打开环境&#xff0c;下面有个提交表单 提交1&#xff0c;2有正确的查询结果&#xff0c;3以后都显示Error Occured When Fetch Result. 题目是sql&#xff0c;应该考察的是sql注入 简单fuzz一下 发现information_schema被过滤了&#xff0c;猜测是盲注了。 测试发现只要有东…