• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >CSS > 浏览器如何判断css优先级

浏览器如何判断css优先级

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-08-06

本文主要包含css优先级,判断等相关知识,佚名 希望在学习及工作中可以帮助到您

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

如何计算?
优先级是根据由每种选择器类型构成的级联字串计算而成的. 它不是一个对应相应匹配表达式的权重值.

如果优先级相同,元素最终会应用 CSS 中靠后的声明.

注意: 在文档树中的距离是不会对元素优先级计算产生影响的.(可以看文档中无视DOM树中的距离的例子)

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

通用选择器*
元素(类型)选择器
类选择器
属性选择器
伪类
ID 选择器
内联样式
事实上,元素还可以从父元素上继承一些样式,如color等属性。这些继承的样式的优先级永远低于元素本身的样式,包括通用选择器:


</div></p> <p> * {
color:red;
}

#test{
color:blue;
}

最终text的颜色是红色的。

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

一些不成文规则

不要在全站范围的css中使用!important.

只在需要覆盖全站范围的css或是外部css(例如引用的ExtJs或是YUI)的时候才在指定的页面上使用 !important。

不要在你的插件中使用!important。

永远都要优先考虑使用样式规则的优先级来解决问题而不是 !important。

取而代之,你可以:

更好的利用CSS的级联属性

更多的使用适合的选择器。比如在你需要选定的对象元素前加上更多的元素,使选择的范围缩小,你的选择器就变得更有针对性,从而提高优先级:


无论你c​ss语句的顺序是什么样的,文本都会是绿色的(green)因为这一条规则是最有特殊性、优先级最高的。(同理,无论语句顺序怎样,蓝色(blue)的规则都会覆盖红色(red)的规则)

什么时候应该使用:
A) 一种情况

你的网站上有一个设定了全站样式的CSS文件,同时你(或是你同事)写了一些效果通常都是很差的行内样式(行内样式的优先级是最高的)。

在这种情况下,你就可以在你全局的CSS文件中写一些!important的样式来覆盖掉那些直接写在元素上的行内样式。

活生生的例子比如:有人在jQuery插件里写了糟糕的行内样式。

B) 另一种情况


在外层有 #someElement 的情况下,你怎样能使 awesome 的段落变成红色呢?这种情况下,如果不使用!important,第一条规则永远比第二条的优先级更高。

怎样覆盖掉 !important

很简单,你只需要再加一条 !important 的CSS语句,将其应用到更高优先级的选择器(在原有基础上添加额外的标签、class或id选择器)上;或是保持选择器一样,但添加的位置需要在原有声明的后面(优先级相同的情况下,后边定义的会覆盖前边定义的)。


想要把原有的绿色文本变成红色,提升优先级的方式:


您可能想查找下面的文章:

  • 浏览器如何判断css优先级
  • CSS优先级算法如何计算?有哪些判定规定及计算方式
  • css样式的特点与优先选择权(优先级)
  • CSS优先级和!important与IE6的BUG讨论及解决方案

相关文章

  • 2017-08-06css样式的特点与优先选择权(优先级)
  • 2017-08-06CSS中使用负margin值来调整居中位置
  • 2017-08-06CSS常用浏览器兼容调整小结
  • 2017-08-06纯CSS3制作的简洁蓝白风格的登录模板(非IE效果更好)
  • 2017-08-06固定浮动定位(fixed)实现思路及代码
  • 2017-08-06CSS 样式命名规则
  • 2017-08-06使用CSS3的box-sizing属性解决div宽高被内边距撑开的问题
  • 2017-08-06CSS3实现多背景模拟动态边框的效果
  • 2017-08-06font-weight 属性设置文本的粗细介绍
  • 2017-08-06如何使用PS合成玫瑰花园中奔跑的女孩

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • IE6 innerHTML写入的iframe src不显示BUG的解决方法
    • css3 border旋转时的动画应用
    • IE8下CSS3选择器nth-child() 不兼容问题的解决方法
    • css 圆角边框
    • 14款免费的RSS、CSS和HTML验证工具
    • CSS文字控制与文本控制属性介绍及应用示例
    • 一个挺常用的float布局div问题解决方法
    • CSS3 绘制BMW logo实的现代码
    • 详解CSS3选择器的使用方法汇总
    • 99款高质量免费(X)HTML/CSS模板收集

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有