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.mzph.cn/news/651202.shtml

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

相关文章

嵌入式学习-C++-Day3

嵌入式学习-CDay3 一、思维导图 二、作业 1.设计一个Per类&#xff0c;类中包含私有成员:姓名、年龄、指针成员身高、体重&#xff0c;再设计一个Stu类&#xff0c;类中包含私有成员:成绩、Per类对象p1&#xff0c;设计这两个类的构造函数、析构函数和拷贝构造函数。 #inclu…

桌面型物联网智能机器人设计(预告)

相关资料 桌面级群控机器人CoCube探索-2022--CSDN博客 视频&#xff1a; 能&#xff01;有&#xff01;多&#xff01;酷&#xff01;CoCube桌面级群控机器人 让我看看谁在SJTU里划水… 简要介绍 设计一个桌面型物联网智能机器人&#xff0c;以ESP32芯片为核心&#xff0c;配…

pip 安装出现报错 SSLError(SSLError(“bad handshake

即使设置了清华源&#xff1a; pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simplepip 安装包不能配置清华源&#xff0c;出现报错: Retrying (Retry(total2, connectNone, readNone, redirectNone, statusNone)) after connection broken by ‘SSLE…

[Python] 如何在Windows下安装图形可视化工具graphviz

什么是graphviz? Graphviz是一款开源的图形可视化工具&#xff0c;用于生成各种结构化数据的图形表示。它支持多种图形排列算法&#xff0c;可以将复杂的数据关系用图形的方式直观地展示出来。Graphviz广泛应用于软件工程、数据可视化、计算机网络以及其他领域的可视化分析中…

springboot131企业oa管理系统

企业OA管理系统 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了企业OA管理系统的开发全过程。通过分析企业OA管理系统管理的不足&#xff0c;创建了一个计算机管理企业OA管理系统的方案。文章介绍了企业OA管…

字符串相关的函数和内存块相关函数

&#x1d649;&#x1d65e;&#x1d658;&#x1d65a;!!&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦ &#x1f44f;&#x1f3fb;‧✧̣̥̇:Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - &#xff1a;来于“云”的“羽球人”。…

springboot 整合 ElasticSearch 方法 (二)

依赖 在pom.xml文件中需要引入3个依赖, 三个都必须有并且三个依赖的版本要一致, 不然会报错. 不一定是 7.6.1 这个版本 , 只需要保证这三个依赖的版本一致就可以了. <dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch<…

【C++入门到精通】特殊类的设计 |只能在堆 ( 栈 ) 上创建对象的类 |禁止拷贝和继承的类 [ C++入门 ]

阅读导航 引言一、特殊类 --- 不能被拷贝的类1. C98方式&#xff1a;2. C11方式&#xff1a; 二、特殊类 --- 只能在堆上创建对象的类三、特殊类 --- 只能在栈上创建对象的类四、特殊类 --- 不能被继承的类1. C98方式2. C11方法 总结温馨提示 引言 在面向对象编程中&#xff0…

Django框架(一)安装与创建项目

认识 Django Django是一个高级Python Web框架&#xff0c;它鼓励快速开发和简洁、实用的设计。它由经验丰富的开发人员构建&#xff0c;解决了Web开发的大部分麻烦&#xff0c;因此您可以专注于编写应用程序&#xff0c;而无需重新发明轮子。它是免费和开源的。 Django官网地…

Java笔记 --- 五、File

五、File 概述 将字符串变成File对象&#xff0c;再去使用里面的方法 父级路径&#xff1a;除了文件本身的路径 C:\Users\Desktop 子级路径&#xff1a;文件名 m.txt 常见的成员方法 判断、返回 length 只能获取文件的大小(字节数量) 创建、删除 delete方法默认只能删除…

行测-资料:1. 速算技巧、基期与现期

1、速算技巧 1.1 截位直除 1.1.1 截位 1.1.2 截谁 1.1.3 截几位 选项差距大&#xff1a; 四个选项首位均不同首位相同&#xff0c;第二位差大于首位 选项差距小&#xff1a; 首位相同且第二位差小于等于首位 例子 C&#xff0c;截两位。 C&#xff0c;截两位。 B&#xff0c;截…

JS中的try...catch

一、定义和结构 作用&#xff1a;捕获同步执行代码下的异常错误 在没有使用try...catch的情况下&#xff0c;同步代码执行遇到异常会报错&#xff0c;并中断后续代码执行&#xff1b; 在使用try...catch的情况下&#xff0c;同步代码执行遇到异常会抛出异常&#xff0c;并继续…

[Linux]HTTP状态响应码和示例

1xx&#xff1a;信息响应类&#xff0c;表示接收到请求并且继续处理 2xx&#xff1a;处理成功响应类&#xff0c;表示动作被成功接收、理解和接受 3xx&#xff1a;重定向响应类&#xff0c;为了完成指定的动作&#xff0c;必须接受进一步处理 4xx&#xff1a;客户端错误&#x…

基于ncurse的floppy_bird小游戏

1. 需求分析 将运动分解为鸟的垂直运动和杆的左右运动。 2. 概要设计 2.1 鸟运动部分 2.2 杆的运动 3. 代码实现 #include <stdio.h> #include <ncurses.h>#include <stdlib.h> #include <time.h>int vx 0; int vy 1;int bird_r; int bird_c;int…

奇怪问题说 - 测试篇

文章目录 1.什么是软件测试2.软件测试和开发的区别3.软件测试的发展&#xff1a;4.软件测试岗位5.软件测试在不同类型公司的定位6.一个优秀的软件测试人员具备的素质6.1综合能力6.2掌握自动化测试技术6.3优秀的测试用例设计能力6.4探索性思维6.5有责任感和一定的压力 7.软件测试…

物联网IOT: 风浆叶片拧紧装配及实时监测系统

某大型风电设备,通过机器人应用与精益化生产体系的融合,打造出行业领先的具备柔性生产能力的“脉动式”生产体系。同时在关键工序上。其中,在叶片装配等关键工序上使用由智能机器人代替人工,以提高生产的效率和装配质量可靠性,将六轴机器人、视觉系统、光电系统、液压、气动、伺…

AMEYA360--思瑞浦推出16通道高精度ADC—TPAFE51760

聚焦高性能模拟芯片和嵌入式处理器研发的半导体公司——思瑞浦推出全新16通道高精度ADC——TPAFE51760。 TPAFE51760内置高精度基准&#xff0c;工作温度支持-40C to 125C&#xff0c;产品广泛应用于电力自动化领域中的DTU、FTU、MU等装置。 TPAFE51760产品优势 业界领先的30V模…

2013年苏州大学837复试机试C/C++

2013年苏州大学复试机试 第一题 题目 假设有一堆数字&#xff08;小于100个&#xff09;需要对其做如下处理&#xff1a; 求平均数求标准差求方差 可用函数实现也可以不用 代码 #include <iostream> #include <sstream> //字符串流 #include <cmath> …

拦截器的简单使用

拦截器的简单使用 拦截器的使用创建拦截器preHandle 目标方法执行前执行postHandle 目标方法执行后执行afterCompletion 视图渲染后执行 拦截器使用场景返回值注册拦截器运用拦截器 拦截器的使用 创建拦截器 首先,我们需要创建一个拦截器器的类,并且需要继承自HandlerIntercep…

Linux服务器配置与管理(第二次实验)

实验目的及具体要求 目的 1.掌握基于命令行的文件操作 2.掌握基于命令行的目录操作 3.掌握用户账户的命令行操作 4.掌握组账户的命令行操作 5.熟悉磁盘分区操作 6.掌握调整优先级的方法 具体要求 1.掌握基于命令行的文件和目录操作 ①创建测试目录 ②创建文件 ③复…