这篇文章写得很清晰:
http://www.demix.com.cn/blog/?p=34
最近一直被两个东西搞得很烦。一个是JavaScript的闭包,另外一个就是CSS选择器的优先级问题。
网上很多都是用一种数位计算法来进行优先级的比较。其实这样有些大题小作了一点。一个是模型不形象,比较难记,二者那种方法其实就是下面要所的优先级排序的具体化。
通常我们可以将CSS的优先级由高到低分为六组:
- 无条件优先的属性只需要在属性后面使用 !important 。它会覆盖页面内任何位置定义的元素样式。当然,IE 6不支持这个属性,于是它也成为一种hack被很多人所熟知,真正使命被人淡忘。
- 第二高位的优先属性是在html中给元素标签加style。由于该方法会造成CSS的难以管理,所以不推荐使用。
- 第三级优先的属性是由一个或多个id选择器来定义的。例如 #id{margin:0;} 会覆盖 .classname{margin:3px;}。
- 第四级的属性由一个或多个 类选择器、属性选择器、伪类选择器定义。如 .classname{margin:3px;} 会覆盖 div{margin:6px;}
- 第五级由一个或多个 类型选择器定义。如 div{margin:6px;} 覆盖 *{margin:10px;} 。
- 最低一级的选择器是为一个通配选择器,用*{margin:10px;}这样的类型来定义。
另外,可以用一句极为简单的话来描述CSS优先级问题:当一个CSS选择器拥有更多的高级别属性时,它的优先级就会比较高。如 #i100
*.c20 *.c10{} 的优先级就会高于 #i100 *.c10 div p span em{}
,这是由于前者拥有一个第三级和两个第四级的选择器而后者第三级和第四级的选择器各为一个,当然前者优先级会比较高。
CSS选择器是一个非常灵活的CSS属性,优雅的使用它会使你的页面代码不再臃肿,而且还可以作为hack的妙用方法之一。
当比较多个相同级别的CSS选择器优先级时,它们定义的位置将决定一切。下面从位置上将CSS优先级由高到低分为六级:
- 位于<head/>标签里的<style/>中所定义的CSS拥有最高级的优先权。
- 第二级的优先属性由位于 <style/>标签中的 @import 引入样式表所定义。
- 第三级的优先属性由<link/>标签所引入的样式表定义。
- 第四级的优先属性由<link/>标签所引入的样式表内的 @import 导入样式表定义。
- 第五级优先的样式有用户设定。
- 最低级的优先权由浏览器默认。
理解了这些CSS优先级问题后,也就不必苦恼于样式定于中的此类问题了。
PS:以上学习于Pro CSS and HTML Design Patter
分享到:
相关推荐
以下是关于CSS选择器权重计算及优先级的详细解释: 首先,我们要了解CSS选择器的四个等级及其对应权重: 1. **内联样式**(权重1000):这是最高级别的权重,当直接在HTML元素中使用`style`属性定义样式时,例如`;...
本文将详细解析CSS选择器优先级的实战应用,帮助开发者理解并解决样式覆盖的问题。 首先,我们要了解CSS选择器的四种基本类型,它们的优先级顺序如下: 1. **行内样式 (inline styles)**:这是最高优先级,通过`...
CSS选择器优先级详解 CSS选择器优先级是CSS样式表中一个非常重要的概念,它决定了CSS样式的应用顺序和优先级。本文将详细介绍CSS选择器优先级的四大原则,以及它们之间的关系和应用。 原则一:继承不如指定 如果...
选择器优先级是指不同类型的CSS选择器在样式冲突时所具有的优先顺序。按照优先级从高到低排序如下: - 内联样式(style属性):权值为1000 - ID选择器:权值为100 - 类选择器(class)、属性选择器、伪类:权值为10...
在CSS选择器的体系中,存在多种不同类型的选择器,每种都有其特定的用途和使用场景。 首先,元素选择符是最基本的类型,包括通配符选择器、标签选择器、id选择器和class选择器。通配符选择器用“*”表示,可以选中...
6. **选择器优先级** 在React组件中,理解CSS选择器的优先级至关重要。内联样式(style属性)的优先级最高,接着是ID选择器,然后是类选择器、属性选择器和元素选择器。合理利用优先级可以更好地控制组件的样式覆盖...
理解CSS选择器优先级是编写高效、可维护CSS代码的关键。以下是关于CSS选择器优先级的一些详细说明: 首先,CSS选择器的优先级由四个部分组成,每个部分对应一个权重值: 1. ID选择器(#id):每个ID选择器的权重为...
CSS选择器的权重分为四类:内联样式、ID选择器、类选择器/属性选择器/伪类、以及元素选择器/伪元素。它们对应的权重分别是: 1. 内联样式(如`style="..."`):1000 2. ID选择器(如`#example`):100 3. 类选择器/...
id选择器的优先级高于类选择器和元素选择器。 4. 类(属性、伪类)选择器 类选择器用于选择具有特定class的元素。例如:.header{ display:none;} <div class="header"></div>。 属性选择器用于选择具有特定属性的...
本文将深入探讨CSS选择器优先级,通过八个实例来帮助你更好地理解这个概念。 首先,我们要明确一点,类的覆盖顺序并不取决于它们在HTML中的引用顺序,而是取决于它们在CSS文件中定义的顺序。例如,如果有两个类选择...
在CSS中,有多种选择器可以用来指定样式规则,每种选择器都有其自己的优先级。以下是常见的选择器和它们的优先级: 1. !important:高于所有其他选择器的优先级 2. ID选择器 (#ID):高于类选择器和元素选择器的...
CSS选择器优先级得关系为: !important>内联>ID选择器>类选择器>标签选择器。 一种优先级算法 内联样式表的权值最高 (style=””) 权值为1000 统计选择符中的ID属性个数。(#id) 权值为100 统计选择符中的CLASS属性...
这个时候突然意识到了CSS选择器的优先级问题,这里就CSS选择器的优先级问题做了一些总结。 51CTO推荐阅读:巧妙地使用CSS选择器 选择器种类 严格来讲,选择器的种类可以分为三种:标签名选择器、类选择器和ID选择...
java教程超全面javaweb教程28天day2-_06_css的基本选择器的优先级
掌握CSS选择器优先级对于精确控制网页样式和解决样式冲突至关重要。在编写CSS时,应尽量避免使用!important,因为它降低了代码的可读性和可维护性。合理运用选择器和优先级,可以使CSS代码更加简洁高效。
在网页制作中,HTML5和...总结来说,CSS优先级是决定网页元素样式效果的关键因素,包括继承、行内样式、选择器权重以及`!important`指令。通过深入理解和熟练运用这些概念,开发者能够更加高效地控制网页的视觉呈现。
了解并熟练运用CSS选择器优先级顺序,可以帮助开发者更精确地控制元素的样式,避免不必要的样式冲突,从而提高代码的可读性和维护性。在实际开发中,尽量减少对 `!important` 的依赖,因为它会使代码难以管理和调试...