CSS选择器的特殊性和LOVE HA】的更多相关文章

在CSS中当几个相同的选择器对同一个元素有不同的规则时,该怎么应用这些规则呢? 答案就是:CSS特殊性(CSS specificity) 选择器特殊性有选择器本身组成,特殊性由4个数值表述:0, 0, 0, 0,具体特殊性如下: 对于内联样式声明的特殊性时,加1, 0, 0, 0 对于选择器中有给定的ID属性值时,加0, 1, 0, 0 对于选择器中有给定的类属性值.属性选择或伪类,加0, 0, 1, 0 对于选择器中有各个给定的元素和伪元素时,加0, 0, 0, 1 结合符和通配符对特殊性没有…
在我们为元素添加样式的时候,或多或少会出现一个元素会有几个不同规则的样式.有#id的,有.class,直接标签元素的,还有各种组合起来的选择器.那CSS到底如何解决这些冲突呢,我们这次专门来探讨一下. CSS也称层叠样式,层叠(cascade)也就是说,将重复定义的样式,先通过重要度的筛选,再通过一定的规则,重新排列覆盖.而这个规则就是,选择器的特殊性.(重要度就不详细说明了,一般认为!important>行内样式>内联样式表>外联样式表>浏览器默认样式) 特殊性 每种选择器都会默…
今天从前端那拿来写好的页面,就开始动工,首先,照旧处理导航栏高亮的问题, 说到处理高亮的问题,不同的人会有不同的方法,比如: //类名为nav的元素下的第n个a元素 .nav a:nth-of-type(n){ color:#ff0000; } 或者,为每个导航栏目设置不同的类名,然后在对应页面,为该导航栏设置高亮: 再或者,导航栏类名都一样的话,用js在每个页面为当前导航栏设置高亮样式或者添加高亮类名(样式提前设定): 总之,方法是多种多样的. 就我今天拿到的页面来说,前4个a标签我用了a:n…
选择器的优先级关系到元素应用哪个样式.在CSS2.1的规范(http://www.w3.org/TR/2009/CR-CSS2-20090908/cascade.html#specificity)中是这样描述的: 如果声明来自于“style”属性,而不是带有选择器的规则,则记为 1,否则记为 0 (= a)(HTML元素的style属性也是样式规则,因为这些样式规则没有选择器,因此记为a=1,b=0,c=0,d=0) 计算选择器中 ID 属性的个数 (= b) 计算选择器中其他属性(类.属性选择…
在前端开发的时候,css构建样式规则,这个时候我们会遇到一个问题:当我们对同一个元素做多个样式规则,其中发生了冲突的时候,css是如何选择最终呈现的样式 如下: div{ color:red; } div.main{ color:blue; } div#main2{ color:green } <body> <div class="main" id="main2"> ssss </div> </body> 最终这个&q…
特殊性 在编写CSS代码的时候,我们会出现多个样式规则作用于同一个元素的情况,例如 <!-- HTML --> <header> <nav class="nav-main" id="navigation">Here background</nav> </header> /* CSS */ header nav { background-color: red; } #navigation { backgrou…
什么是选择器?选择器{样式;},在{}之前的部分就是"选择器","选择器"指明了{}中的"样式"的作用对象,也就是"样式"作用于网页中的哪些元素,类似这样body{color: pink;font-size: 16px;}; :标签选择器其实就是html代码中的标签,比如<html>.<body>.<h1>.<p>.<img>等 .类选器名称{css样式代码;}这样的…
我们来看一下一个简单的例子: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <style> h1 { color:yellow; } h1.title { color:red; } </style></head><body> <…
我们做项目的时候,经常遇到样式层叠问题,被其他的样式覆盖,或者写的权重不高没效果,对权重没有具体的分析,做了一个总结. css继承是从一个元素向其后代元素传递属性值所采用的机制.确定应当向一个元素应用哪些值时,浏览器不仅要考虑继承,还要考虑声明的特殊性,另外需要考虑声明本身的来源.这个过程就称为层叠.——<css权威指南> 如下图,css规则由选择器和声明块组成,写在选择器后面大括号里的就叫声明.…
我们在使用CSS对网页元素定义样式时经常会遇到这种情况:要对一般元素应用一般样式,然后在更特殊的元素上覆盖它们.那么我们怎么样来保证我们所新定义的元素样式能覆盖目标元素上原有的样式呢? 在CSS中,会根据选择器的特殊性来决定所定义的样式规则的次序,具有更特殊选择器的规则优先于具有一般选择器的规则,如果两个规则的特殊性相同,那么后定义的规则优先. 那么,又怎么来计算选择器的特殊性呢?下面这张图介绍了特殊性的计算方法: 我们把特殊性分为4个等级,每个等级代表一类选择器,每个等级的值为其所代表的选择器…