在css中,我看到div.selector和selector都用于定义特定选择器的样式规则。
两者之间的区别是什么?在编写我自己的css文件时,我应该考虑采用其中一个原因的原因是什么?
答案 0 :(得分:9)
div.selector
仅定位div
类的selector
个元素。.selector
定位类.selector
的所有元素,而不只是DIVs
因此,如果您知道将要应用css的那个,那么前缀元素带有标记名称。后一种方法更多是 泛型 ,并且针对具有指定类的所有元素。但是,您应该尽可能具体。
如果您知道只有div
个元素具有.selector
类,那么就性能而言更具针对性,例如div.selector
而不是.selector
它将查找页面上的所有元素,但最终将这些样式仅应用于DIVs
。
答案 1 :(得分:3)
div.selector
是比.selector
更具体的选择器。
例如,你有这个HTML:
<a href="" class="selector">Link</a>
<div class="selector"></div>
选择器div.selector
仅匹配.selector
选择两个元素的div。
答案 2 :(得分:1)
如前所述,为类添加元素名称前缀(即:div.selector)将只选择div作为元素,但不包括任何其他元素。考虑到这一点,您可以创建可应用于多个元素和/或定位单个元素的类。
就可读性而言,为您的班级添加前缀可以帮助您和您的团队确定css中元素的来源。但是,就一般最佳实践和性能而言,通常建议您尽量不要为您的类和ID声明添加前缀,因为它会导致用户的浏览器引擎进行额外的工作。
通过为您的类添加前缀(即:div#selector或div.selector),您的浏览器必须找到该类,然后确定它是否为div类型)。虽然这样做所需的时间可以忽略不计,但我觉得还值得一提。
以下是关于表现和实践问题的一些有用链接:
https://developer.mozilla.org/en/Writing_Efficient_CSS和 http://css-tricks.com/efficiently-rendering-css/