- 1、本文档共24页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
看这⼀篇就够了,css选择器知识汇总
对⼤多技术⼈员来说都⽐较熟悉CSS选择器,举⼀例⼦来说,假设给⼀个p标签增加⼀
个类 class ),可是执⾏后该class中的有些属性并没有起作⽤。通过Firebug查看,发
现没有起作⽤的属性被覆盖了,这个时候突然意识到了CSS选择器的优先级问题。严
格来讲,选择器的种类可以分为三种:标签名选择器、类选择器和ID选择器。⽽所谓
的后代选择器和群组选择器只不过是对前三种选择器的扩展应⽤。⽽在标签内写⼊
style=的⽅式,应该是CSS的⼀种引⼊⽅式,⽽不是选择器,因为根本就没有⽤到选
择器。⽽⼀般⼈们将上⾯这⼏种⽅式结合在⼀起,所以就有了5种或6种选择器了。
最基本的选择器是元素选择器(⽐如div),ID选择器(⽐如#header)还有类选择器(⽐
如.tweet) 。⼀些的不常见的选择器包括伪类选择器( hover) ,很多复杂的CSS3和正则选择
器,⽐如:first-child ,class ^= “grid-” 。CSS选择器具有⾼效的继承性,引⽤Steve Souders的
话, CSS选择器效率从⾼到低的排序如下:
1.id选择器 #myid )
2.类选择器 .myclassname )
3.标签选择器 div ,h 1,p )
4 .相邻选择器 h 1+p )
5.⼦选择器 ul li )
6.后代选择器 li a )
7 .通配符选择器 *)
8.属性选择器 a[rel=external] )
9.伪类选择器 a hover , li nth-child )
纵使ID选择器很快、⾼效,但是它也仅仅如此。从Steve Souders的CSS Test我们可以
看出ID选择器和类选择器在速度上的差异很⼩很⼩。
在Windows系统上的Firefox 6上,我测得了⼀个简单类选择器的 reflow figure )重绘
速度为10 .9ms ,⽽ID选择器为12.5ms ,所以事实上ID ⽐类选择器重绘要慢⼀点点。
ID选择器和类选择器在速度上的差异基本上没有关系。
在⼀个标签选择器(a)的测试上显⽰,它⽐类或ID选择器的速度慢了很多。在⼀个嵌套
很深的后代选择器的测试上,显⽰数据为440左右 !从这⾥我们可以看出ID/类选择器
和 元素/后代选择器中间的差异较⼤,但是相互之间的差异较⼩。
选择器的优先级是怎么规定的呢?
⼀般⽽⾔,选择器越特殊,它的优先级越⾼。也就是选择器指向的越准确,它的优先
级就越⾼。通常我们⽤1表⽰标签名选择器的优先级,⽤10表⽰类选择器的优先级,
⽤100标⽰ID选择器的优先级。⽐如上例当中 .polaris span {color red;}的选择器优先级
是 10 + 1 也就是11;⽽ .polaris 的优先级是10 ;浏览器⾃然会显⽰红⾊的字。理解了
这个道理之后下⾯的优先级计算⾃是易如反掌:
div .test1 .span var 优先级 1+10 +10 +1
span#xxx .songs li 优先级1+100 + 10 + 1
#xxx li 优先级 10
对于什么情况下使⽤什么选择器,⽤不同选择器的原则是:
1、准确的选到要控制的标签;
2、使⽤最合理优先级的选择器;
3、HTML和CSS代码尽量简洁美观。通常:
①最常⽤的选择器是类选择器。
②li、td、dd等经常⼤量连续出现,并且样式相同或者相类似的标签,我们采⽤类选择
器跟标签名选择器结合的后代选择器 .xx li/td/dd {} 的⽅式选择。
③极少的情况下会⽤ID选择器,当然很多前端开发⼈员喜欢header ,footer ,banner ,
conntent设置成ID选择器的,因为相同的样式在⼀个页⾯⾥不可能有第⼆次。
在这⾥不得不提使⽤在标签内引⼊CSS的⽅式来写CSS ,即:
div style=color:redpolaris/div
这时候的优先级是最⾼的。我们给它的优先级是1000 ,这种写法不推荐使⽤,特别是
对新⼿来说。这也完全违背了内容和显⽰分离的思想。DIV+CSS的优点也不能再有任
何体现。
怎么提升CSS选择器性能?
1、避 使⽤通⽤选择器
.content * {color: red;
浏览器匹配⽂档中所有的元素后分别向上逐级匹配 class 为 content 的元素,直到⽂档
的根节点。因此其匹配开销是⾮常⼤的,所以应避免使⽤关键选择器是通配选择器的
情况。
2、避 使⽤标签或 class 选择器限制 id 选择器
BAD
button#backButton {…
B
您可能关注的文档
- 古代建设艺术的精英-塔.ppt
- 地埋式垃圾站尺寸参数报价.docx
- 建设给水聚丙烯应用技术规程.doc
- 2009年云南省建筑工程造价员资格考试.doc
- 关于文化基因传承视角下的城市空间蔓延初探_以西安市为例_魏峰群.pdf
- 第十四节绝热吸声装饰材料.ppt
- 我爱厨房-橱柜和厨房家电知识积累(中).pdf
- 岩溶管道及裂隙交叉渗流特性试验研究.pdf
- 图解法调整碎石级配.pdf
- 圆明园盛期植物景观和配置方式研究.pdf
- 中国多次直拉单晶炉行业市场占有率及投资前景预测分析报告.pdf
- 中国多功能阀门行业市场占有率及投资前景预测分析报告.pdf
- 中国多工位直接成衣打印机行业市场占有率及投资前景预测分析报告.pdf
- 部编版九年级下册语文详细教学计划及教学进度安排.docx
- 宁夏吴忠市同心县四校2024-2025学年高一上学期期末联考试地理试题(解析版).docx
- 中国多点平均温度计行业市场占有率及投资前景预测分析报告.pdf
- 2024年重庆市高考物理试题含答案解析.docx
- 2024年天津市高考政治试题含答案解析.docx
- 2024年天津市高考物理试题含答案解析.docx
- 中国多弹簧泥浆密封行业市场占有率及投资前景预测分析报告.pdf
文档评论(0)