怎么排列html的顺序,css样式优先级及层叠的顺序排序探讨

2023-11-06

一般情况下:

[1位重要标志位] > [4位特殊性标志] > 声明先后顺序

!important > [ id > class > tag ]

使用!important可以改变优先级别为最高,其次是style对象,然后是id > class >tag ,另外,另外在同级样式按照申明的顺序后出现的样式具有高优先级。

­

先来看下!important 这个诡异的东西

复制代码代码如下:

div{background: red !important; background: blue}

除了IE6,其他浏览器都会显示背景为红色,正是!important的作用,意思就是只要我在这里我就是最重要的啦,任何东西都不能取代我,没看见都是一个 !外加一个英文单词 important 吗?很形象,很贴切了。IE6这里会显示背景为蓝色,并不是IE6不支持!important,而是它会按照样式声明顺序后出现的覆盖前面的,此时它已经不认识!important了,它六亲不认了。这正是广为流传的IE6 hack之一。而如果这样写会正常显示背景为红色:

复制代码代码如下:

div{background: blue; background: red !important; }

再来看下4位特殊性标志 [0.0.0.0]

从左至右,每次给某一个位置+1,前一段对后一段具有无可辩驳的压倒性优势。无论后一位数值有多大永远无法超过前一位的1。

1,内联样式 [1.0.0.0]

A:

B:还有就是JS控制的内联样式style对象,document.getElementById("demo").style.color="red";

这两者属于同一级别,不过一般情况是JS控制的内联样式优先级高,这与先后顺序申明有关系与本质无关,因为往往DOM操作是在DOM树加载完毕之后。

2,ID选择器 [0.1.0.0]

3,类,属性,伪类 选择器 [0.0.1.0]

4,元素标签,伪元素 选择器 [0.0.0.1]

关于CSS选择器可以查看W3C或者CSS的手册,不啰嗦了。

注意下 伪类选择器

LVHA伪类,样式按LVHA优先级顺序从右至左覆盖,不同的顺序会产生不同的效果。

a:link - 默认链接样式

a:visited - 已访问链接样式

a:hover - 鼠标悬停样式

a:active - 鼠标点击样式

最后写下关于JS控制内联样式 带!important的现象:

看下正常的Demo1:

复制代码代码如下:

div{background: red !important; height:20px;}

#demo1{ background: green;}

.demo1{ background:blue;}

复制代码代码如下:

复制代码代码如下:

document.getElementById("demo1").style.background="black";

最终显示背景为红色,这应该不会有什么问题, !important 放到哪都会改变优先级的,而后面的JS代码也不会改变优先级。

--------------------------------------------------------------------------------

另外一个Demo2:

复制代码代码如下:

div{background: red !important; height:200px;}

#demo2{ background: green;}

.demo2{ background: blue;}

复制代码代码如下:

复制代码代码如下:

document.getElementById("demo2").style.background="black";

IE6,7 显示 红色

FF2+ 显示 黄色

Opera9+ 显示 红色

Safari 显示 黄色

--------------------------------------------------------------------------------

­Demo3:

复制代码代码如下:

div{background: red !important; height:200px;}

#demo3{ background: green;}

.demo3{ background: blue;}

复制代码代码如下:

复制代码代码如下:

document.getElementById("demo3").style.background="black !important";

IE6,7 显示红色

FF2+ 显示黄色

Opera9+ 显示黑色

Safari 显示黑色

--------------------------------------------------------------------------------

­解释下上面两个例子:

­JS控制的style对象 实际就是内联样式style,这个没错

­

但是对于 JS控制style对象属性值里增加的!important 三个浏览器却给出了不同的结果:

­IE:JS控制style对象属性值完全覆盖内联style属性值,不支持Element.style.property="value !important",将报错:参数无效。

FF2+:不完全支持Element.style.property="value !important" : !important无效,不会报错, 如果内联style属性值无!important,则完全覆盖,有!important 则内联style属性优先级最高,不会受JS控制style的任何影响。

Opera9+ :JS控制style对象属性值完全覆盖内联style属性值,支持Element.style.property="value !important"。

Safari:支持Element.style.property="value !important" ,如果内联style属性值无!important,则完全覆盖,有!important 则内联style属性优先级最高,不会受JS控制style的任何影响。

css样式优先级是按照样式表中出现顺序还是按照元素中class或者id值的声明顺序呢?

以前一直以为是class中声明的迟的值优先级高,其实是根据样式表中出现的顺序来的。

代码:

复制代码代码如下:

div{ height: 200px; width: 200px; background: red; }

.b{ background: green; }

.a{ background: blue;}

div的样式会显示blue的样式颜色。

学透前端行业所有技术,玩遍北京周边所有城市。然后我会回到那个生我养我的地方,因为有亲人的地方才是家。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

怎么排列html的顺序,css样式优先级及层叠的顺序排序探讨 的相关文章

  • 通过三个示例,看Java读取文件数据与Java写入数据到文件操作

    Java读取文件 1 JAVA读取文件内容的程序 2 JAVA写入内容到指定文件 3 JAVA读取文件A的内容 并将内容写入文件B 1 JAVA读取文件内容的程序 提供文件所在位置 扫描文件内容 逐字输出文件内容 文件的内容逐字输出 因为n
  • 网络层协议-IP分组

    网络层Internet Protocol 在数据链路层提供的两个相邻端点之间的数据帧的传送功能上 进一步管理网络中的数据通信 将数据设法从源端经过若干个中间节点传送到目的端 从而向运输层提供最基本的端到端的数据传送服务 IP分组首部的格式功
  • Vue如何让页面加载时请求后台接口数据

  • NULL0路由的作用(概述)

    简单的来说 NULL0是属于路由器的逻辑接口 NULL0接口总是处于Up状态 但不转发任何报文 当NULL0接口接收到报文后 会把报文丢弃 不能在NULL0接口上配置IP地址 也不能在NULL0接口上封装任何链路层协议 NULL0主要用于防
  • Elasticsearch查询——Sort(查询排序)

    Sort 查询排序 测试索引 Elasticsearch针对普通数据 数组 嵌套对象 地理位置都提供了排序功能 为了测试其排序方式我们需要可以能够足够数据类型的索引 所以创建了下面一个索引以及其映射 PUT offline sales PU
  • AcWing 3708. 求矩阵的鞍点

    输入样例 3 4 1 2 3 4 1 2 3 4 1 2 3 4 输出样例 1 4 4 2 4 4 3 4 4 include
  • mysql安装(Linux中redhat版本,redhat密码破解)

    破解密码 1 先重启系统 开始界面点击鼠标入进电脑 按下e键 2 在界面中间输入rd break 输入Ctrl x执行 3 输入下面命令 修改命令 mount o 是字母o不是数字0 remount rw sysroot chroot sy
  • 【华为OD机试真题 python】等和子数组最小和【2022 Q4

    前言 华为OD笔试真题 python 专栏含华为OD机试真题 华为面试题 牛客网华为专栏真题 如果您正在准备华为的面试 或者华为od的机会 有任何想了解的可以私信我进行交流 我会尽可能的给一些建议 和帮您解答 PS 文中答案仅供参考 不能照
  • 操作系统实验—处理机调度算法的模拟

    操作系统实验 处理机调度算法的模拟 一 实验目的 二 实验内容 PCB进程控制块结构 设计要求 三 实验过程记录 1 算法的思路 2 主要数据结构 3 程序代码 运行效果 一 实验目的 熟悉处理器调度算法的工作原理 掌握调度算法的实现 进程
  • WEB网站常见受攻击方式及解决办法

    一个网站建立以后 如果不注意安全方面的问题 很容易被人攻击 下面就讨论一下几种漏洞情况和防止攻击的办法 一 跨站脚本攻击 XSS 跨站脚本攻击 XSS Cross site scripting 是最常见和基本的攻击WEB网站的方法 攻击者在
  • 大端小端问题总结及相关面试题

    昨天有一同学问了我一个关于大端小端的面试题 以前掌握的蛮好的现在突然之间想不起来了 回来翻了翻书 觉得现在有必要写一篇文章来记录一下这个知识点 大端小端是存储讲的是数据在内存中的存放顺序 大端存储格式就是自数据的高字节存放在低地址中 低字节
  • 数据库设计的 10 个最佳实践

    作者 Emily Williamson 译者 孙薇 责编 屠敏 出品 CSDN ID CSDNnews 以下为译文 数据库是应用及计算机的核心元素 负责存储运行软件应用所需的一切重要数据 为了保障应用正常运行 总有一个甚至多个数据库在默默运
  • make menuconfig 添加新选项

    如何在make menuconfig 界面添加新选项步骤 1 先在Linux内核源码目录下创建个新目录 哪个位置都行 一般添加新驱动时 都会在 drivers目录下创建 这里为了实验的方便就在 源码目录下创建了 mkdir hmq test
  • Visual Studio 2019(VS 2019)配置Qt开发环境(最新!)

    1 Qt下载与安装 1 Qt下载 Qt全版本下载网址 Index of archive qt 根据操作系统下载对应的安装包即可 我选择的是5 9 9的版本 2 Qt的安装 双击打开下载好的qt opensource windows x86
  • FRP代理及其在数据库安全上的实践

    1 代理 现如今的互联网世界里 代理服务已经十分常见 它通常作为一个第三方或者说中转站角色替代用户取得信息或者服务 根据代理对象的不同 代理服务可以分为正向代理和反向代理 1 1 正向代理 我们通常所说的代理一般都指的是正向代理 正向代理的
  • LlamaIndex 提供的索引

    LlamaIndex 以前称为 GPT Index 是一个开源项目 它在 LLM 和外部数据源 如 API PDF SQL 等 之间提供一个简单的接口进行交互 它提了供结构化和非结构化数据的索引 有助于抽象出数据源之间的差异 它可以存储提示
  • 严重漏洞已存在16年,数亿台打印机受影响

    聚焦源代码安全 网罗国内外最新资讯 编译 奇安信代码卫士 安全专家在惠普 Xerox 和三星使用的常用打印机驱动中找到一个严重漏洞 该漏洞编号为 CVE 201 3438 在2005年就存在于打印机驱动代码中 影响过去16年来出售的数亿台打
  • 火狐浏览器使用HttpRequester模拟发送http请求

    个人感觉网上的在线模拟http请求工具相比火狐的HttpRequester没那么实用方便 首先安装HttpRequester 打开菜单 附加组件 搜索框输入 HttpRequester 就会搜出来 然后点击安装 成功后在工具这里就会显示有H
  • Android数据的四种存储方式

    Android数据的四种存储方式 SharePreferences SQLite Contert Provider File 网络存储 作为一个完整的应用程序 数据存储的操作是必不可少的 Android系统提供了四种存储数据方式 分别为 S

随机推荐

  • Cache-Control浏览器缓存

    描述 同一个标签页 打开 A 站点 访问 config 接口 正常 打开 B 站点 访问 config 接口 正常 通过浏览器后退返回 A 站点 访问 config 接口 数据异常 config 返回了 B 站点的数据 测试站点数据 htt
  • 浅谈Spring切面编程AOP的实现,以及两种写法aspect和advisor

    在开发过程种 很多地方会用到Spring的AOP 之前一致使用
  • 在centos7系统下解决java程序需要依赖外部jar包的问题

    javac cp xxxx jar bbbbb java cp也可以换成 classpath 转载 https blog csdn net weixin 34023863 article details 94448291 utm mediu
  • LVS+Keepalived群集

    Keeoalived 工具介绍 专门为LVS 和 HA 设计的一款健康检查工具 专为LVS和HA设计的一款健康检查工具 支持故障自动切换 Failover 以及节点健康状态检查 Health Checking 判断LVS负载调度器 节点服务
  • cairo[00] Windows环境学习笔记——Visual Studio配置GTK

    GTK是什么 GTK是一个跨平台的前端 在本笔记中 只会用作呈现 实际绘图依然由cairo完成 配置GTK 我们可以直接通过终端来将GTK直接加载进Visual Studio的内核 这样每次新建任务就不用再进行配置 前提是你安装了Visua
  • 【C++从入门到放弃】C++/g++不同文件夹的编译

    本文大面积参考了简书资料 https www jianshu com p 2b047bcce8fa 由于源书上存在好几处细节上的问题 比如 class Afunc 应该是 class A std cout lt lt include A l
  • Docker + ELK + SpringBoot部署

    步骤一 Docker安装ELK镜像 docker pull sebp elk 步骤二 启动镜像 方法一 Docker部署 docker run e ES JAVA OPTS Xms256m Xmx256m 设置虚拟机所需内存大小 p 560
  • 面试题:100个白球,100个黑球,每次取两个

    面试题 袋子里有黑白球各100个 每次从袋子里取2个球 若取的球颜色相同 则放入1个黑球 若不同 则放入1个白球 问 最后袋子里剩下1个黑球的概率是多少 思路一 每次取球有3种情况 1 两黑 此时放入1个黑球 黑球在袋子里个数为奇数个 白球
  • 网络原理详解(图文结合)

    目录 编辑一 应用层 1 请求和响应 2 通用的协议格式 1 xml 2 json 3 protobuffer 二 传输层 1 UDP 2 TCP 1 TCP 协议段格式 2 可靠传输的实现机制 确认应答机制 可靠性 超时重传机制 可靠性
  • VMware 安装 Windows11

    一 下载win11的镜像文件 可以在MSDN网站下载 MSDN系统库 致力于原版windows生态服务 二 创建虚拟机 1 双击打开VMware虚拟机 点击创建新的虚拟机 2 选择典型 推荐 然后点击下一步 3 在安装程序光盘映像文件下 点
  • 基于无法安装64位版本的visio,因为在您的PC上找到了以下32位程序的解决办法

    今天在给自己安装visio 64位版本的时候 出现 无法安装64位版本的visio 为在您的PC上找到了以下32位程序 microsoft access database engine 2010 english 请卸载所有32位Office
  • JAVA全排列算法

    利用java知识编写全排列算法 里面有我的个人理解注释 代码如下 package demo import java util ArrayList import java util Arrays import java util List S
  • 夺灵者哈卡(Hakkar, the Soulflayer)

    Hakkar the Soulflayer夺灵者哈卡Deathrattle Shuffle a Corrupted Blood into each player s deck 亡语 将一张 堕落之血 分别洗入双方玩家的牌库 Corrupte
  • java main()线程是不是最后一个退出的(相比较main中创建的其他多个线程)

    JVM会在所有的非守护线程 用户线程 执行完毕后退出 main线程是用户线程 仅有main线程一个用户线程执行完毕 不能决定JVM是否退出 也即是说main线程并不一定是最后一个退出的线程 public class MainThreadTe
  • 欧拉回路路径求解

    基本概念 今天讨论的主题是一类问题 就是欧拉路问题 有两种欧拉路 第一种叫做 Eulerian path trail 沿着这条路径走能够走遍图中每一条边 第二种叫做 Eularian cycle 沿着这条路径走 不仅能走遍图中每一条边 而且
  • 滑动平均滤波的Java实现

    滑动平均滤波的Java实现 滑动平均滤波是一种常用的信号处理技术 用于平滑输入信号并减少噪声的影响 本文将介绍如何使用Java实现滑动平均滤波 并提供相应的源代码 滑动平均滤波的原理是通过计算一系列连续输入信号的平均值来平滑信号 具体而言
  • el-calendar日历自定义显示内容

    版本信息 之前我整理了一篇VUE Element ui实战之el calendar日历自定义显示内容 有码友在评论区里分享了更简介的方式 看到后一直想尝试一下 所以本篇就是来 填坑的 按照提供的思路我尝试了一下 现将全部代码贴出来 以供大家
  • C/C++ cmake教程

    通过编写CMakeLists txt 然后运行cmake命令可以自动生成对应Makefile 从而控制make的编译过程 因此在学习cmake之前 建议先对make有个大致的了解 1 单个源文件的编译 如果你的项目只有一个源文件main c
  • 《一周搞定模电》-二极管

    一周搞定模电 二极管 提示 写完文章后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 一周搞定模电 二极管 前言 一 什么是二极管 二 稳压二极管 整流二极管 开关二极管 前言 提示 这里可以添加本文要记录的大概内容 为找工作
  • 怎么排列html的顺序,css样式优先级及层叠的顺序排序探讨

    一般情况下 1位重要标志位 gt 4位特殊性标志 gt 声明先后顺序 important gt id gt class gt tag 使用 important可以改变优先级别为最高 其次是style对象 然后是id gt class gt