低权重原则——避免滥用子选择器

CSS的选择符是有权重的,当不同选择符的样式设置有冲突时,会采用权重高的选择符设置的样式。

如果CSS选择符权重相同,那么样式会遵循就近原则,哪个选择符最后定义,就采用哪个选择符的样式。

如果忽略了CSS选择符权重,会产生意想不到的小麻烦。

需求与方案
 

复制代码
代码如下:

<style type=”text/css”>
#test { font-size: 14px; }
</style>
<p id=”test”>CSS 选择符权重很重要</p>

现在需要将“很重要”三个字设置为红色,我们的做法如下:

方案一,利用子选择器

复制代码
代码如下:

<style type=”text/css”>
#test { font-size: 14px; }
#test span { color: red; }
</style>
<p id=”test”>CSS 选择符权重<span>很重要</span></p>

方案二,新建class

复制代码
代码如下:

<style type=”text/css”>
#test { font-size: 14px; }
.red { color: red; }
</style>
<p id=”test”>CSS 选择符权重<span class=”red”>很重要<span></p>

很多工程师推荐使用方案一,因为使用子选择器可以避免新增class,让HTML代码更简洁。这么考虑是有道理的,但如果这时需求有变化,需要添加新的文字进来。

改变需求

复制代码
代码如下:

<style type=”text/css”>
#test { font-size: 14px; }
#test span { color: red; }
</style>
<p id=”test”>CSS 选择符权重<span>很重要</span>, 我们要小心处理</p>

要求将‘小心处理’设置为绿色,我们可能会这样做。

复制代码
代码如下:

<style type=”text/css”>
#test { font-size: 14px; }
#test span { color: red; }
.green { color: green; }
</style>
<p id=”test”>
CSS 选择符权重<span>很重要</span>, 我们要<span class=”green”>小心处理<span></p>

本以为‘小心处理’会设置为绿色,但被权重更高的#test span设置为红色。子选择器在无意中影响到了我们新添加的代码。如果想要达到我们的预期,重写代码如下

复制代码
代码如下:

<style type=”text/css”>
#test { font-size: 14px; }
#test span { color: red; }
#test .green { color: green; }
</style>
<p id=”test”>
CSS 选择符权重<span>很重要</span>, 我们要<span class=”green”>小心处理<span></p>

而如果使用方案二,情况会怎么样呢

复制代码
代码如下:

<style type=”text/css”>
#test { font-size: 14px; }
.red { color: red; }
.green { color: green; }
</style>
<p id=”test”>CSS 选择符权重<span class=”red”>很重要<span>,我们要<span class=”green”>小心处理<span></p>

因为没有子选择器,所以我们给新添加的代码挂上新的class,就可以顺利地完成样式设置了。

小结
使 用子选择器,会增加CSS选择符的权重,CSS选择符权重越高,样式越不容易被覆盖,越容易对其他选择符产生影响。所以,除非确定HTML结构非常稳定, 不会再修改了,否则尽量不要使用子选择器。为了保证样式容易被覆盖,提高可维护性,CSS选择符需要保证权重尽可能低。

低权重原则——避免滥用子选择器

时间: 2024-12-30 08:29:13

低权重原则——避免滥用子选择器的相关文章

css式样重用、子选择器和组选择器

css 工作与网页制作有关,最近整理了一些css的东西,发出来,希望有用. 重用:经常会用到一些基本的式样叠加,比如字体的颜色和加粗.网页中可能同时出现三种情况:1.字体为红色  2.字体加粗 3.字体红色加粗这时我们只需要定义前两个css:.red{color:red;}.b{font-weight:bold;}第三种情况时用<div class="red b"></div> 子选择器:相对来说,简化html文件的代码更加重要,因此在css中使用子选择器非常有

耀辉:医院SEO之低权重网站SEO方法

今天耀辉和大家探讨下低权重医院网站的SEO方法.我们都知道民营医院网站都是以盈利为出发点,那么我们做SEO的当然要从这个角度考虑SEO. 先要明确一点:我们不能仅站在SEO的角度去SEO,尤其做医院SEO的要和医院企划部.网络咨询.竞价专员相配合好.只有这样才能更好的定位访客群.定位网站SEO方案.如:做一些医院品牌词(医院品牌词,品牌活动词),我们要和企业部工作接轨;做一些有效信息词,医院SEOER要和网络咨询.竞价专员做好沟通或资源交流. 下面耀辉进入主题,讲讲通常低权重的医院网站SEO要做

解密SEO:低权重网站如何挑战“秒收”梦境

在传统的SEO优化认可中,网站收录速度越快便表示其权重越高,因为收录速度决定了搜索引擎的关注度.然而时至今日,秒收不再是高权重网站的特权,通过合理优化,新站依旧可以挑战秒收特权.而虽无权重,但在不断的快速收录下,却可快速提升网站排名,且利用这个优势更可换到高质量的友情链接加速网站发展.因为对一个可以秒收的网站站来说,其网站优化水准以及内容的质量都是较为优秀的,由此才可以达到秒收的效果.那么,新站如何以低权重来挑战秒收梦境呢?本文做出以下理解: 一:网站定位与发展核心要紧密 网站质量的好坏从发展核

CSS命中目标:子选择器、相邻同胞选择器与属性选择器等

在CSS布局网页开发中,我们还会用到一常非常有用的选择器,可以用它来进行整体布局声明,这就是通用选择器.看下面的代码:  代码如下 复制代码 * {     margin:0;     padding:0; } 这种形式的代码一般不会多次出现,在页面代码中出现一次而已,但它的功能是非常强大的,在计算机领域中一般情况下都约定"*"为通配符,它的声明将会作用于页面中所有的可用元素,使用它可以定义一些页面中基本的规则,如边距margin.填充padding.字体font-family.文字大

最高法界定网络侵权:避风港原则不能滥用

中介交易 SEO诊断 淘宝客 云主机 技术大厅 该司法解释征求意见稿共20条,其中规定如涉及侵权,网站要在5个工作日内采取必要措施. 早报记者 石剑峰 最高人民法院昨天全文公布了<关于审理侵犯信息网络传播权民事纠纷案件适用法律若干问题的规定(征求意见稿)>,共20条,意见稿对网络用户.网络服务提供者侵犯著作权行为,尤其是对侵权认定情形做出详细规定.根据意见稿,仅提供信息存储空间.搜索.链接.点对点技术等网络服务不构成侵权,但明知或者应知网络用户侵犯他人信息网络传播权的具体事实,仍提供服务或者不

专注网站发展:低权重网站如何获得高流量

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 网站权重越高,所得到的流量也就会越大,这是亘古不变的真理,所以站长在网站建设途中一切以搜索引擎赋予的网站权重看齐.网站权重大于天,是站长最值得骄傲的地方,但似乎忽略了一个问题,难道低权重网站就真的无法获得高流量吗?今天二进制便结合自身的一些实践经验来做一下个人分析总结,如有不周还望交流探讨. 一:流量走向分析 想要获得流量,作为一名站长就要明

SEOER们良好利用网站资源勿滥用子域名

一个好的网站,应该良好利用自己网站资源.选择使用子域名或者是目录来合理分配自己网站内容,对网站在搜索引擎有着非常好的帮助,用得好就会对于网站权重提高,用得不好就会对网站有影响,所以说要良好利用自己网站勿滥用子域名和目录.现在百度已经对于独立子域名认为独立网站,也就是也有权重和,在此我在这里浅淡一下如何更好的利用网站子域名. 一.什么情况下利用子域名 当一个网站达到什么样程度就可以利用子域名了,当一个网站频道的内容非常丰富,而且频道页积累着大量的人气或者是足够的内容的时候,再转换成子域名这样最好.

《Web前端开发修炼之道》-读书笔记CSS部分

如何组织CSS-分层 应用 css 的能力分两部分:一部分是css的API,重点是如何用css控制页面内元素的样式:另一部分是css框架,重点是如何对 css 进行组织.如何组织 css 可以有多种角度,例如按功能划分,或者按区块划分.这里讲一下 base.css + common.css + page.css 的组织方法.将网站内的所有样式,按照职能分成三大类:base.common.page,这三者是层叠结构. 1.base 层-精简通用 位于三者的最底层,提供 css reset 功能和粒

高质量的CSS

1.浏览器模式和DTD 我们平常用到的浏览器可能有多个模式,比如标准模式,兼容模式.在标准模式中,浏览器根据规范显示页面.兼容模式为了兼容老版本浏览器下的代码,用了很多非标准的解析方式. DTD全称Document Type Definition(文档类型定义).一个DTD包含元素的定义规则.元素间关系的定义规则.元素可使用的属性.可使用的实体或符号规则. 如果漏写了DTD,IE6,IE7,IE8就会触发兼容模式.DTD详细参考http://www.w3school.com.cn/tags/ta