css权重及优先级问题_html/css_WEB-ITnose
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了css权重及优先级问题_html/css_WEB-ITnose,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4842字,纯文字阅读大概需要7分钟。
内容图文
![css权重及优先级问题_html/css_WEB-ITnose](/upload/InfoBanner/zyjiaocheng/404/6336ea03e7234fe4864537ec7b21ce87.jpg)
几个值的对比
CSS属性的 指定值 (specified value)会通过下面3种途径取得:
- 在当前文档的样式表中给这个属性赋的值,会被优先使用。
- 如果在当前文档的样式表中没有给这个属性赋值,那么它会尝试从父元素那继承一个值。
- 如果上面的两种途径都不可行,则把CSS规范中针对这个元素的这个属性的初始值作为指定值
应用值(used value)是完成所有计算后最终使用的值。计算出CSS属性的最终值有三个步骤。
CSS 2.0 只定义了 计算值 computed value 作为属性计算的最后一步。 CSS 2.1 引进了定义明显不同的的应用值,这样当父元素的计算值为百分数时子元素可以显式地继承其高宽。 对于不依赖于布局的 CSS 属性 (例如 display, font-size, line-height)计算值与应用值一样,否则就会不一样
优先级
优先级是浏览器是通过判断哪些属性值与元素最相关以决定并应用到该元素上的。优先级仅由选择器组成的匹配规则决定的。
优先级是根据由每种选择器类型构成的级联字串计算而成的。他是一个对应匹配表达式的权重。
如果优先级相同,靠后的 CSS 会应用到元素上。
下列是一份优先级逐级增加的选择器列表:
!important 规则例外 Link
当 !important 规则被应用在一个样式声明中时,该样式声明会覆盖CSS中任何其他的声明, 无论它处在声明列表中的哪里. 尽管如此,!important规则还是与优先级毫无关系.使用 !important 不是一个好习惯,因为它改变了你样式表本来的级联规则,从而使其难以调试。
一些经验法则:
怎样覆盖掉 !important
:not 伪类例外
:not 否定伪类在优先级计算中不会被看作是伪类. 事实上, 在计算选择器数量时还是会把其中的选择器当做普通选择器进行计数.
无视DOM树中的距离
有如下样式声明:
body h1 { color: green;}html h1 { color: purple;}
当它应用在下面的HTML时:
Here is a title!
浏览器会将它渲染成purple,即后面的优先级更高
外边距合并
外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。
外边距合并初看上去可能有点奇怪,但是实际上,它是有意义的。以由几个段落组成的典型文本页面为例。第一个段落上面的空间等于段落的上外边距。如果没有外边距合并,后续所有段落之间的外边距都将是相邻上外边距和下外边距的和。这意味着段落之间的空间是页面顶部的两倍。如果发生外边距合并,段落之间的上外边距和下外边距就合并在一起,这样各处的距离就一致了。
可替换元素
CSS 里,可替换元素是这样一些元素, 其展现不是由CSS来控制的。这些外部元素的展现不依赖于CSS规范。 典型的可替换元素有 、
CSS在某些情况下会对可替换元素做特殊处理,比如计算外边距和处理值为 auto 的情况。
需要注意的是,一部分(并非全部)可替换元素,本身具有尺寸和基线,会被一些 CSS 属性用到,比如 vertical-align。
LINKS
![](http://www.gxlcms.com/Public/aiod/ts.jpg)
html代码热搜
- 使用HTML编写简单的邮件模版
- HTML中Li标签的使用示例
- 关于type="file"的input框样式修改小结
- HTMLcellpadding与cellspacing属性图文详解
- 详解HTML编程的标记与文档结构
- 用DIV遮罩解决鼠标直接勾选checkbox无效的问题
- 在网页上调用桌面exe程序的简单方法
- html借助marquee实现文字左右滚动
- 关于分割线hr在各浏览器中的差异
- a标签的target链接指向iframe的方法
- 使用overflow:hidden来禁用页面滚动条
- 使用SWFObject完美解决HTML插入Flash的各浏览器兼容性方案
- 如何使用图片按钮作为重置(reset)表单按钮
- 超链接的宽度和高度直接设置不起作用的解决方法
- textarea的disabled与readonly属性具体用法介绍
- 空格在Html中如何表示( 有什么含义)
- 在js或css后加?v=版本号不让浏览器缓存
- 块级元素和内联元素及可变元素汇总
- HTML的结束标签问题与w3c标准
- iframe框架在IE浏览器下将白色背景设为透明色
- AdobeBrackets简单使用图文教程
- 如何去除表单的回车即提交即回车!=提交
- Readonly和Disabled之间的微小区别详解
- 如何设置select只读不可编辑且select的值可传递
- html中radio值的获取、赋值、注册事件示例详解
![](http://www.gxlcms.com/ad/tx500x500.jpg)