html css控制优先级,css权重及优先级问题_html/css_WEB-ITnose

5268f80b9b1e01f982625ef6fac83ca1.png

css权重及优先级问题

几个值的对比

初始值

指定值

计算值

应用值

CSS属性的 指定值 (specified value)会通过下面3种途径取得: 在当前文档的样式表中给这个属性赋的值,会被优先使用。

如果在当前文档的样式表中没有给这个属性赋值,那么它会尝试从父元素那继承一个值。

如果上面的两种途径都不可行,则把CSS规范中针对这个元素的这个属性的初始值作为指定值

应用值(used value)是完成所有计算后最终使用的值。计算出CSS属性的最终值有三个步骤。

首先,指定值specified value 取自样式层叠 (选取样式表里权重最高的规则), 继承 (如果属性可以继承则取父元素的值),或者默认值。

然后,按规范算出 计算值computed value。

最后,计算布局(尺寸比如 auto 或 百分数 换算为像素值 ), 结果即 应用值used value。

这些步骤是在内部完成的,脚本只能使用 window.getComputedStyle 获得最终的应用值。

CSS 2.0 只定义了 计算值 computed value 作为属性计算的最后一步。 CSS 2.1 引进了定义明显不同的的应用值,这样当父元素的计算值为百分数时子元素可以显式地继承其高宽。 对于不依赖于布局的 CSS 属性 (例如 display, font-size, line-height)计算值与应用值一样,否则就会不一样

优先级

优先级是浏览器是通过判断哪些属性值与元素最相关以决定并应用到该元素上的。优先级仅由选择器组成的匹配规则决定的。

优先级是根据由每种选择器类型构成的级联字串计算而成的。他是一个对应匹配表达式的权重。

如果优先级相同,靠后的 CSS 会应用到元素上。

下列是一份优先级逐级增加的选择器列表:

通用选择器(*)

元素(类型)选择器

类选择器

属性选择器

伪类

ID 选择器

内联样式

!important 规则例外 Link

当 !important 规则被应用在一个样式声明中时,该样式声明会覆盖CSS中任何其他的声明, 无论它处在声明列表中的哪里. 尽管如此,!important规则还是与优先级毫无关系.使用 !important 不是一个好习惯,因为它改变了你样式表本来的级联规则,从而使其难以调试。

一些经验法则:

Never 永远不要在全站范围的 css 上使用!important

Only 只在需要覆盖全站或外部 css(例如引用的 ExtJs 或者 YUI )的特定页面中使用!important

Never 永远不要在你的插件中使用!important

Always 要优化考虑使用样式规则的优先级来解决问题而不是!important

怎样覆盖掉 !important

很简单,你只需要再加一条 !important 的CSS语句,将其应用到更高优先级的选择器(在原有基础上添加额外的标签、类或 ID 选择器)上;

或是保持选择器一样,但添加的位置需要在原有声明的后面(优先级相同的情况下,后边定义的会覆盖前边定义的)。

:not 伪类例外

:not 否定伪类在优先级计算中不会被看作是伪类. 事实上, 在计算选择器数量时还是会把其中的选择器当做普通选择器进行计数.

无视DOM树中的距离

有如下样式声明: body h1 { color: green;}html h1 { color: purple;}

当它应用在下面的HTML时: Here is a title!

浏览器会将它渲染成purple,即后面的优先级更高

外边距合并

外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。

外边距合并初看上去可能有点奇怪,但是实际上,它是有意义的。以由几个段落组成的典型文本页面为例。第一个段落上面的空间等于段落的上外边距。如果没有外边距合并,后续所有段落之间的外边距都将是相邻上外边距和下外边距的和。这意味着段落之间的空间是页面顶部的两倍。如果发生外边距合并,段落之间的上外边距和下外边距就合并在一起,这样各处的距离就一致了。

可替换元素

CSS 里,可替换元素是这样一些元素, 其展现不是由CSS来控制的。这些外部元素的展现不依赖于CSS规范。 典型的可替换元素有

htmldaima-268687.html、 、 以及 、 这样的表单元素。 一些元素,比如 和 ,只在一些特殊情况下是可替换元素。 使用了 CSS content 属性插入的对象被称作匿名的可替换元素。

CSS在某些情况下会对可替换元素做特殊处理,比如计算外边距和处理值为 auto 的情况。

需要注意的是,一部分(并非全部)可替换元素,本身具有尺寸和基线,会被一些 CSS 属性用到,比如 vertical-align。

LINKS

MDN

w3school

1428d0e076c3959ab11d28a39bc84fab.png

5268f80b9b1e01f982625ef6fac83ca1.png

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

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

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

相关文章

Hbase集群监控

Hbase集群监控 Hbase Jmx监控 监控每个regionServer的总请求数,readRequestsCount,writeRequestCount,region分裂,region合并,Store 数据来源: /jmx?qryHadoop:serviceHBase,nameRegionServer,subServer 设…

学校计算机二级模拟上机能看分数吗,全国计算机二级考试机试考完怎么储存的...

全国计算机二级考试机试考完怎么储存的以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!全国计算机二级考试机试考完怎么储存的自动储存在系统里面,考试结束后上传,分数…

宝塔面板 创建 二级域名 Unable to round-trip http request to upstream

1、我的服务器是阿里云,安装了宝塔面板,直接使用宝塔面板创建二级域名bike.caowei.wang。 2、然后就想访问了,对不起,直接给你报错Unable to round-trip http request to upstream: dial tcp: lookup bike.caowei.wang: no suc…

计算机准考证打印山东省招生教育,山东省教育招生考试院2020高考准考证打印入口:wsbm.sdzk.cn...

免费申请学习规划请选择在读年级学前小学初中高中大学留学其他已为30154位学员提供学习规划*验证码*短信验证码{"text1":{"label":"薄弱科目","placeholder":"请输入你的薄弱科目","required":1,"formType&q…

webpack-dev-server 本地文件 发布 网站 域名 根目录

我在做微信开发的时候,官方要求能在网站根域名下访问一下鉴权文件。说白了,就是根目录下可以直接访问资源。所以我们需要copy-webpack-plugin这个包。 1、首先引入 const CopyWebpackPlugin require(copy-webpack-plugin) 2、配置toType: file ne…

Java 同步器

CyclicBarrier是什么 CyclicBarrier也叫同步屏障,在JDK1.5被引入,可以让一组线程达到一个屏障时被阻塞,直到最后一个线程达到屏障时,所以被阻塞的线程才能继续执行。CyclicBarrier好比一扇门,默认情况下关闭状态&#…

SMB MS17-010 利用(CVE-2017-0144 )

exploit-db : https://www.exploit-db.com/exploits/42315/ 该漏洞的影响版本很广泛:Microsoft Windows Windows 7/8.1/2008 R2/2012 R2/2016 R2 - EternalBlue SMB Remote Code Execution (MS17-010) 具体请查看公告:Microsoft 安全公告 MS17-010 - 严重…

计算机硬盘的主流型号,四款主流2.5英寸笔记本机械硬盘性能对比

虽说固态硬盘已经逐渐成为了主流,但是对于普通的笔记本用户来说,传统的2.5英寸机械硬盘则是笔记本扩容的首选,毕竟现在一款1TB的笔记本机械硬盘价格不到400元,而1TB的固态硬盘无论是什么接口,价格都能买好几个机械硬盘…

研究人员用数据统计的方法来做文学研究

研究人员用数据统计的方法来做文学研究 大数据与文学,一个是理性工具,一个是感性思维,看起来似乎不沾边。但如今,二者的联系却日渐紧密起来,也由此引发了不少争议。 谁是最爱往外跑的诗人? 唐宋时期最爱往外…

阿里云 centos ssh key 客户端 无密码登录 ssh 登录

准备工作:刚购买了阿里云,使用登录账号密码,其次我的mac电脑已经生产了ssh-key啦。使用ssh-key登录阿里云只需要一步设置: ssh-copy-id -i ~/.ssh/id_rsa.pub root139.196.85.194 然后乖乖得输入服务器密码,按下回车。…