时间:2021-05-08
关于ID选择器
和class选择器不同,这里使用#
class的值不同标签可以发生重复。但是id不允许!!!
id选择器不能结合使用
id属性通常和js配合使用
思考
最近我在对 CSS 的样式进行一些性能测试,然后我的一些好友问我:为什么你不使用 IDs 来作为页面上一些特定的内容部分呢?
这个问题很难回答,有下面几个理由:
1.页面中的该元素无法重用
2.螺旋式下降导致的特异性
3.通过 IDs 用来标识一些非常特殊的内容,但牺牲了抽象性
4.性能方面可通过其他方式来解决
5.下面我们针对这四点进行深入探讨。
无法重用页面的元素
IDs 对程序员来说相当于是单例,一个页面中不允许存在两个相同的 id(当然浏览器不会报错就是了),这就意味着你不可能重用某个元素,相当于是一对一的关系。而根据我的速度测试,如果一段 CSS 代码只对一个元素起作用对速度并不利,同时也带来了 CSS 膨胀的额外开销。
由螺旋式下降导致的特异性
CSS 关于重载的两个方法:
1.级联: (任何下一级的元素都可以重写上一级CSS规则)
2.特异性: the idea of creating weight by using weighted selectors.
为什么我说这里是一个螺旋式下降,因为为了要重载一个优先级很高的规则,我必须给它设置添加再高的优先级。
上面是我在 2005 年的一段真实的代码,上面的代码我必须在最后使用 !important 规则来对选择器规则进行重新排序。这很不好。一旦我们这样做......它需要我们更多的时间去追捕父ID,我们将推翻当前的特异性。这是不友好的而且不利于维护,最终你会掉进入自己挖好的洞,只有重构才能摆脱这个噩梦。
另一方面:
我听到少数的一些声音关于使用 ID 选择器的好
使用 ID 选择器更快
是的,这一点的确没错,而且我也曾经证明过。但是性能的表现微乎其微,但当你使用嵌套其他选择器时性能就下降了:
第二个选择器就没有第三个来的快,因为CSS是从右到左的,因此 li 会先被扫描,因此通过 ID 进行定位将直接被忽略。
关于 CSS 选择器的性能问题,请看 Steve Souders explains how selector speed works.
IDs 就是单例的意思
很多人会在页面中定义 ID ,但某个元素在所有页面中只出现一次的话,用 ID 选择器是没问题的。我唯一声明的是所有代码都应该是可重用的,如果能避免还是尽量避免。
特别说明
最后需要说明的是,我并不是要大家完全抛弃使用 ID,ID 可以加速 JavaScript 执行,在文档中传达具体的意义。
我只是不建议在 CSS 中使用 ID 选择器,当然,决定权在于你自己。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Jquery中CSS选择器用法。分享给大家供大家参考。具体如下:jQuery使用了一套css选择器,共有5种,即标签选择器,ID选择器,类选择器,
一、基础选择器css基础选择器有标签选择器、类选择器、id选择器、通用选择器1.标签选择器每个html页面都由很多个标签组成,通过标签选择器可以对某类标签应用相
属性选择器(AttributeSelectors),或许你不应该对属性选择器感到陌生,从本质上说,id跟类选择器其实就是属性选择器,只不过是选择了id或者类的值
CSS选择器可以包括,标签选择器、类别选择器、ID选择器、交集选择器、并集选择器、后代选择器、全局选择器、伪类等,这些样式应用都已经在flex得到支持1.标签选
基本选择器基本选择器是jQuery中最常用的选择器,也是最简单的选择器,它通过元素id、class和标签名等来查找DOM元素。在网页中,每个id名称只能使用一次