csscss类选择器优先级符有哪些?优先级是怎么的

您所在的位置: &
CSS中的包含选择符与子对象选择符的区别
CSS中的包含选择符与子对象选择符的区别
张芳芳/侯俊杰
清华大学出版社
《CSS Web开发学习实录》第2章选择符,本章将讲解CSS选择符的使用。本节为大家介绍 CSS中的包含选择符与子对象选择符的区别。
2.8& 常见问题解答
2.8.1& CSS中的包含选择符与子对象选择符的区别
请问CSS中的包含选择符与子对象选择符有什么区别?
网络课堂:
请问CSS中的包含选择符与子对象选择符有什么区别?
【解决办法】举个例子:&&&&&&&&&&&&&&&&&&&&&&
要定义li的样式,用包含选择符,写成:div&li{...}&
没有问题。
若用子选择符,只能写成:ul&li{...}&
不能写成:div&li{...}&
因为div和li非"父子关系",而是"祖孙关系"。子对象提供了更精细的控制,由此可见包含选择符的深度和广度超过子对象选择符;而子对象选择符的针对性和唯一性比包含选择符强。
【责任编辑: TEL:(010)】&&&&&&
关于&&的更多文章
这本书是写给程序员和项目经理的。作者结合自身的丰富成长历程,
本书描述了黑客用默默无闻的行动为数字世界照亮了一条道路的故事。
多年来,Imar Spaanjaars一直是ASP.NET相关图书的畅销
《C#高级编程(第8版)》是C# 2012和.NET 4.5高级技术的
《Android 4 游戏入门经典(第3版)》将赋予您惊人的灵
Java的出现,实现了跨操作系统平台的程序开发,以Java为基础的J2EE技术已经成为因特网服务技术的主流。然而,以J2EE为基础的SOA
51CTO旗下网站 CSS selector 选择符是我们进行CSS网页布局的基础。CSS selector到底有哪些,如何合理的运用呢?选择符可以分为三类,除了第一类HTML selector之外,其它两类我们是可以自己命名的,在进行命名时,注意包含语义,或者添加必要的注释,使我们的代码更清晰,易读。  HTML selector 标签选择符  HTML selector就是HTML的标签,如:DIV,TD,P,H1等等,如你用 CSS 定义了它们,在CSS文章所控制的页面中这个标签的性质就按照你的定义来显示。  比如我们想叫H1的颜色是红的,则:H1 {color: red}。这里我们学习一个CSS的特点,它可定义好几个 selector在一个rule里。如:H1, H2, TD {color: red}。这个定义就能让所有的 H1, H2, 和 TD 的颜色都为红色。在具体使用中,可以将几个设置相同的属于合并起来编写,减小我们的代码。  Class selector 类选择符   Class selector有两种,一种叫相关 class selector,它跟一个 HTML 的标签有关系它的语法是tag.Classname {property:value}。如:我们想设置一些而不是全部 H1 的颜色是红的 H1.redone {color: red}则:第一个 H1 是红色的,而第二个就不是了。  第二种是独立class selector。它可被任何 HTML标签所应用。它的语法如下 .Classname {property:value}假如我们有下面这个定义.blueone {color: blue}那么我们可以把他应用到不同的标签中去。非常明显class selector 给了我们更多的自由与发挥的空间。  ID selector ID选择符  ID selector 其实跟独立 class selector 的功能很相似。而区别在于它们的语法和用法不同,以及对于 javascript 操纵 HTML元素有帮助。我们在布局中,对不同的结构区域的定义,往往用ID选择符。  它的语法如下#IDname {property:value}。假如我们有下面的定义#yelowone {color: yellow}。我们可以运用这个定义到任何的有同样 ID 名字的标签,如:text here你可能觉得既然 ID selector 和独立 class selector 功能一样,为什么两者都存在呢?有 ID 的 HTML元素可以被JavaScript来操纵。
站长资讯刊登此文只为传递信息,并不表示赞同或者反对作者观点。
如果此内容给您造成了负面影响或者损失,本站不承担任何责任。
如果内容涉及版权问题,请及时与我们取得联系。
06-2606-1208-0707-3007-2807-2607-2607-2607-2107-21
06-2606-2606-2606-26
06-2606-2606-2606-2606-1906-1906-1906-1906-1906-19
广告位招租,联系QQ 614515&有关于""的文章列表
CSS中的选择符实际使用指南
& & 这篇文章主要介绍了CSS中的选择符实际使用指南,是CSS入门学习中的基础知识,需要的朋友可以参考下& & 在我最早开始写css的时候,其代码上的高自由度就一直很令我困惑。这就是说,同一个设计,如果让不同的人来实现,最终的代码一定是有差异的。但这存在一个问题,如果不同的人通过不同的方法以及代码风格,都从外观上实现了一样的设计,将很难评价谁做得更好。想来也是,既然都实现了设计,达到了目的,css这种没有程序逻辑的代码中,又能找出什么来说明谁做得更出色呢?& & 而如今,我认同的观念是,css这种描述性语言,仍然有着代码上的质量评判。评判标准就是可维护性(Maintainability)和性能(Performance),用比较通俗的话说,好的css,要对开发者的工作友好(dev-friendly),也要对浏览器友好(browser-friendly)。 本文将说明如何从css选择符的角度来提高css代码质量。& & 关键选择符与浏览器的样式规则匹配原理& & css选择符的概念,在之前的css优先级详细解析的开头部分也有提到,是指每一条样式规则中,描述把样式作用到哪些元素的部分,也即{}之前的部分。在本文,还要额外介绍一个概念:关键选择符(Key selector)。关键选择符就是在每一条样式规则起始的{之前的最后一个选择符,如下图:& & & & css选择符将确定后面的属性定义要作用到哪些元素,因此存在一个浏览器根据css选择符来应用样式到对应元素的匹配过程。关于浏览器的样式匹配系统,David Hyatt在Writing Efficient CSS for use in the Mozilla UI一文中提到了以下内容:& & The style. system matches a rule by starting with the rightmost selector and moving to the left through the rule&s selectors. As long as your little subtree continues to check out, the style. system will continue moving to the left until it either matches the rule or bails out because of a mismatch.& & 意思是说,浏览器引擎在样式匹配时,以从右向左的顺序进行。在具体匹配某一条样式规则时,这个从右向左的过程会一直持续,直到读取完整个选择符序列并完成匹配,或因某一个地方的不匹配而取消(然后转到另一条样式规则)。& & 至于为什么浏览器会选择这样的匹配顺序,你可以看看Stack Overflow上的相关讨论。大致上解释一下的话,由于最右边的关键选择符直接表示了样式定义应作用的元素,所以从右向左的顺序更利于浏览器在初始匹配的时候就确定有样式定义的元素集合,并更快地在找某一个元素的样式时避开大多数实际没有作用到的选择符。& & 更好的css选择符,是让浏览器在样式匹配过程中减少匹配查询次数,以更快的速度完成样式匹配,从而优化前端性能。这其中,也必须参考浏览器的对于样式从右向左的匹配顺序。& & css选择符的正确使用方式& & 更特定,更具体的关键选择符& & 关键选择符是浏览器引擎在样式匹配时最先读取到的部分,因此,如果你在某一条样式规则中使用更特定、具体的选择符,可以帮助减少浏览器的查找匹配次数。& & 比如说下边这样的选择符:& & CSS Code复制内容到剪贴板& & & & 最后一个span是关键选择符,而span这个标签,在网页中使用是非常多的。浏览器从span开始读取选择符,就可能会为因此在样式匹配上做了一些额外工作。& & 如果你确定只是想为具体处于那一个位置的span元素定义样式,更好的做法是为span命名class,比如命名为span.note_text,然后简单写为:& & CSS Code复制内容到剪贴板& & & & 使用class选择符& & class选择符(类选择符)是最利于性能优化的选择符。相对于class,ID的缺点是只允许定义给一个元素,无法重用。而此外,它在使用上没有任何比class更好的地方。很多时候,你很难确定某一个元素是否是唯一的。另外,使用class来定义样式,而保留ID给javascript,一直是一个较好的实践。如果可以,不使用ID来定义样式。& & 而相对于class,标签在html中的重复性要更大,因此同样可能让浏览器在样式匹配时做更多的额外工作。如果可以,除css样式清零(reset)外,不使用标签选择符(也叫元素选择符)。& & 缩短选择符序列& & 继承写法(准确地说,这里指css关系选择符中的包含选择符)是css中很常用的写法。继承写法的初衷是,如果有两个元素,都是同样的标签或有相同的class命名,加入父元素的选择符组成选择符序列,就可以避免在不需要的时候两个元素的样式互相影响。比如.confirm_layer .submit_btn就是指,class名为submit_btn,且有一个class名为confirm_layer的父元素的元素,才应用样式。& & 但是,避免元素样式相互影响,并不代表可以随意地使用继承选择符。前面提到,浏览器会从右向左读取整个选择符序列,直到读取完毕并匹配完成,或者因不匹配而取消。因此,短的选择符序列更有利于浏览器更快地完成匹配过程。相对的,冗长的选择符序列则认为是低效的,比如:& & CSS Code复制内容到剪贴板& & & & 建议写为:& & CSS Code复制内容到剪贴板& & & & 一般来说,不超过3层的继承层级就可以满足实际中的开发要求。因此,应减少不必要的继承层级,使用更短的选择符序列。& & 此外,较长的选择符序列还有一个问题。有较长选择符的样式规则,css优先级的计算值也较大,因此,如果在以后需要写新的样式来覆盖掉它,就需要写更长的选择符(或者使用ID)以获得更高的css优先级。这对性能和代码可读性都是不利的。& & 避免链式选择符& & 链式选择符(Chaining selectors)是对单个元素同时写了多个选择符判定的情况。比如p.name是指class名为name,且标签是p的元素,才应用样式。这些判定组合可以是ID选择符,标签选择符,class选择符的任意组合。& & 但是,链式选择符是过度定义(over qualified)的,不利于重用,也不利于性能优化。如:& & CSS Code复制内容到剪贴板& & & & 建议写为:& & CSS Code复制内容到剪贴板& & & & 这里的a是不必要的。一个ID只对应一个元素,没有必要再强调这个元素的标签是什么(同理,class也不必)。另外有:& & CSS Code复制内容到剪贴板& & & & 建议写为:& & CSS Code复制内容到剪贴板& & & & 这里的span.arrow中的span也是不必要的。一方面,这为浏览器在样式匹配时增加了一项额外工作:检查class名为arrow的元素的标签名是不是span,也因此降低了性能。另一方面,如果去掉了这个限定,.arrow的样式定义,就可以用在更多的元素上,也就有着更好的重用性。否则,就还得告诉别人,使用这个的时候只能用在span标签上。& & 同理,多个class的链式写法,如& & CSS Code复制内容到剪贴板& & & & 建议更改命名,写为:& & CSS Code复制内容到剪贴板& & & & 这样可以帮助浏览器减少额外的样式匹配工作。& & 此外,IE6还存在一个链式选择符的问题,多个class选择符写在一起时,例如.class1.class2.class3,正常情况是只有同时有这全部的class的元素,才应用样式。但IE6只认最后一个,也就是符合.class3这个选择符的元素,就应用样式。& & 例外情况& & 前面所述的选择符的写法的建议,只是从浏览器渲染性能优化,及代码的重用性方面分析得到的理论结果。在实际使用中,你并不需要严格按照这些内容来做。例如,如果你确实是准备为class名为intro的元素内的所有a标签元素都加上某样式,那么.intro a这样的选择符是明智的。& & 结语& & 关于的css选择符的指南,你还可以阅读google developer中的Use efficient CSS selectors。& & 如今,现代浏览器在样式匹配上也逐渐有了更多的优化(参考CSS Selector Performance has changed!),有些方面的内容我们已经不再需要再担心了。但是,这并不意味着不需要考虑写合理的css选择符了。css选择符性能优化是依然存在的事,你的选择符应该更好地体现你的意图,而不是随心所欲地使用。更重要的是,以这样一种稍细腻的,经过思考的想法来写css选择符,并不是一件困难的事。只要你想,形成这样的一种习惯,你就可以自然地在这方面做得更好,何乐而不为呢?
本文地址:/yuedu/jingyan/052.html,转载请保留。
微信备份通讯录在哪?
微信摇一摇搜歌功能怎么用?
微信登陆不了解决办法
支付宝口碑外卖怎么用
《武神赵子龙》赵云是赵子龙吗最后结局是什么_武神赵子龙赵云的扮演者
《甄嬛传》纯元皇后是谁演的 历史上真的有这个人吗_纯元皇后的扮演者是谁
《女医明妃传》漏洞百出的十大经典穿帮镜头集锦_《女医明妃传》遭吐槽
《锦衣夜行》夏浔有几个老婆和谢雨霏在一起了吗_锦衣夜行夏浔的扮演者
《中国好歌曲》第三季盲选今晚收官 幕后英雄引领音乐盛典
《我是歌手4》第八期歌单排名剧透 李玟垫底失声痛哭
朴瑞俊品牌写真公开 自然阳光帅气养眼
重庆武隆芙蓉洞一日游css选择符有哪些?哪些属性可以继承?优先级算法如何计算_百度知道
css选择符有哪些?哪些属性可以继承?优先级算法如何计算
提问者采纳
。。至于优先权。,。:CSS选择器 优先级可以找到很多很详细的文章,一两句话讲不清楚,你问度娘要,CSS 元素选择器CSS 类选择器CSS ID 选择器CSS 属性选择器CSS 后代选择器CSS 子元素选择器CSS 相邻兄弟选择器CSS 伪类CSS 伪元素等等等
其他类似问题
为您推荐:
优先级的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 css属性选择器优先级 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信