你对CSS规则的执行顺序是否了解,这里和大家分享一下,若两条规则具有相同的权值、起源及特殊性,那在样式表中最后出现的规则优先。

1、CSS规则之特殊性

首先来看一下这个例子将会发生的情形:

<style type="text/css">
.grape
{
color: Blue;
}
H1
{
color: Red;
}
</style>
<h1 class="grape">
Meerkat <em>Central </em>
</h1>

H1和.grape都匹配上面的H1元素,那么到底应该使用哪一个呢?实践证明.grape是正确答案,把句子显示为蓝色。根据规范,一般的HTML元素选择符(H1,P等)具有特殊性:

1、类选择符具有特殊性10,ID选择符具有特殊性100,值越大,权重就越大,越优先。

<style type="text/css">
H1
{
color: Red;
}
/*特殊性=1*/ PEM
{
color: Blue;
}
/*特殊性=2*/ .grape
{
color: Fuchsia;
}
/*特殊性=10*/ P.bright
{
color: Yellow;
}
/*特殊性=11*/ P.brightEM.dark
{
color: Gray;
}
/*特殊性=12*/ #ID01
{
color: Red;
}
/*特殊性=100*/
</style>

2、CSS规则之继承

在特殊性的框架下,被继承的值具有特殊性0,也就是说任何显式声明的规则将会覆盖其继承样式,即便这条规则具有多高的权重。

<style type="text/css">
#ID01{color:Red;}
/*特殊性=100*/
EM{color:Gray;}
/*特殊性=1*/
</style>
<h1 id="ID01">
Meerkat<em> Central</em>
</h1>

虽然ID选择符特殊性最高,但由于在特殊性的框架下,继承值只有特殊性0,因些Central会显示为Gray颜色。

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAARIAAAA3CAIAAABPQ1JFAAAFBUlEQVR4nO2czZGcMBBGiWgT2CBcPhGBqxwGNy6uIoQ5EsDUxsBxQtgjYcgHgdBPS+jTSsvs7vfKBxcIJKb6IXUju3v98/by69/7+7sihOTRURtCUKgNITDd69+3l9/UhhAAakMIDLUhBIbaEAJDbQiBoTaEwFAbQmCoDSEw1IYQGGpDCAy1IQSG2hACQ20IgaE2hMBQG0Jgfow2y6i6Ti1XD4NcwnqfhmEYpvta535n2sy96rrtzxgG3XKc7TrVjXUGVRN3hN9Qm8dt8JimaRiG2+PqkV3LZorzw9SyJme2WeeoFcepTs21htQAM85vpY0JjCMcDofqhciXZ/+dKv4kkDa98vq15yJqo5l74YeqjlHGn1T2E5dNNo/bk0nbwBpMm8CNsaM2Xk+ql94vlTuJOWOdvEgb3ft3twbVxklv3LSB2hwdNdVmX4jF4uDC133tzLsCTaxBtbHTG+f4Fdro4lhOjH6ONonVbL0+wnymVS9gD0cKnnfhZn/jWbGNNbA2VkDoxKbvU9rYyU+OXeft9SqoE4Zkrxi96kWoTUlHsfEvQrNGBUaT8hdEW1haCm5iV+Wm+xpeElwh1KsSncSG4B4XQjwsF+b9CI2sydfG6GEib+xU16t5jMTTHkxmXZeoyJW0N570arGsGKX4FmebbbKSbi7eJByh8BDZE2AJxVNNsK474jSpznFJMp1ybpk1tr2T28O6zPRs30I8aN8g1U0ra/K1mWc3aJYt5hZRm/1VHXOpn70+wPZKKW/GGP2DdmyH2qSSEGue8QTZbh63oqk2ZVPNdpUfOTEPLGucM2cRWGSNI4T0eNEXRVbBsJk1gDbLFkw6gvXBcZG1OX+Ru4GFttcc2pyFqadNceJ+akVLbUqsSeTocmUhItnp6x2qe1vWFEZ0lhANa/H52qzOu1b/fV4lbVZHMI85zIXQ9hmnxEfQ2hSUB5ys6SptCqxJxY18u8+1prjokCVdyy9YiDbGkGVPbFYlaXOaIn+w/c7pksl7BHupmU5RwlHpxhfONgWxJufRHtdZkxnOzlPokV0912DaHDmxtaZKaCPOHgJo+50Cbbw/MXHMQ8mLyQu0wasB50l87IqoNWd5TWVrrNkFSrPwMcFA2rg1WecF/HW0WawexWwqUcG7TpvzJZr3lfOrWxN/TzyBNZg27ip/q6jFc5vc7xVo+50Cbcz0YoYdLtUSKdPzahNsDTjbSxDwVNYkHjfLGnAhCANqE65exEqaWAU2jEFgoe2dq0p3CYyd3Kn80UYpVapNjc2dSW10JLlnktoIF9S15nGTh4p9bnlaa1BtTPyZBZX83Sa+CtLt/Xc82l4p9WFtYp0ah6MTUa/WRW4gdLSUrD9DohpENk+eLXK8w8XWSOdj0sBzTbw2Md0f8Q1Aza1BtTELKhMxsSWNuEFr248jxRDaXpVV0tym8lLNSuFM+2OatSpyQuE7KKaPydoDgPAKTr95pXd2zIHonc5TJC9GUxuws8P5qJ4Fz7pbc4+pWbA+xUH+dacOhSMOwsJxMFd8xp60oErhEA5y1yzdl/+tRt/c6j06gQQjrODMfmvsy4VYg/ZCLb5TLbg2ueU62i5VBo+PXtrrNt1X527p3W6JZ/44P+b/EiCkHtSGEBhqQwgMtSEEhtoQAkNtCIGhNoTAUBtCYKgNITDUhhAYakMIDLUhBIbaEAJDbQiBoTaEwFAbQmCoDSEw/wGS5ZtjBNASrQAAAABJRU5ErkJggg==" alt="" />

3、CSS规则之STYLE元素

还有sytle元素在CSS下权值定义为100,尽管ID选择也一样,实际上style元素比ID具有更高的特殊性。

<style type="text/css">
  #ID01, EM{color:Gray;}
</style>
<h1 id="ID01">
Meerkat<em style="color:red;"> Central</em>
</h1>

会显示为red颜色。

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQsAAAAuCAIAAACwIas0AAAFC0lEQVR4nO2bzZWrMAxG6ZJ22LGkBJYpgCJYUgZl+C0A4R9JlsGEvDnfPbNKbOwkurZkmMYBAGSatycAwE8DQwDQgCEAaMAQADRgCAAaMAQADRgCgAYMAUADhgCgAUMA0IAhAGjAEAA0YAgAGn/akGXsum5c3p4GeIX145rGNa1bb12GMWSdho5g4msZO58fjMBghj84v9vMrmnCv9a1jWv6tyf2Np82/mbaz81LCnvIaUkSYJ5Aw3RPz0c55vm3DFld28RLY18tGv4O+wbSuM/dEM0aElvg7zAwxBvq+S+DfvV+jt7YtYlf/xrzz/m5byZ3UyxnMCT+5f0MBoZ4Iz38ZYh6OOeOgHjLkG3026t1PY4lo4a0eUPCEAtSfBjiDfTolzFn8qi5fy1GKxXENamXYjmTIX6MBa+/YchuqGHk7xgip6MVx2Bqj4dGKV10qTI2duy/kg3WS7GczZDzt9/ziWFQgiKUKB87hvZik/BYLXQhMeTSQNL8owO9lHpibvvDtcCi1ZT+0ov03ruflekS9yBj5T+/S3q+NKevc9Hcc1fOfwk1UyynG0Im0K+9jF3XDdM0CqFzxA0TlWzElLanDsO0nAJQtAbzYfeQval2hh1+qGSG4pwe2kMubyBJYnaGfnIoTBIGXWho+RC5aLXuj6v5WRBp4GdE7Iv0iXRJqqZYLmMIqbDHxxYL47Kwhkj5ON+6vL3XJ7SIXgzCODVEKxhENY83ZAEeNeTaBrL3SgKXlu3oYudq3XPtJQGKVuuZk3BmxqUQjy9rO7KrmmK5nCFLEB5bsHiLdhAU+eWZXZ3N7c95yQJxTUONyuM4K8CjhlDs2gVRSmfyjV2b00W357SJB7LNzd+mrq3ups2h/sG3bsjqr6DnoSYTwtpSS2F9o33+Lekq43Klak/qjFcM4ZbYDGqIsL5JG042q9lXa9vc+MQpS1rzqJtDkbQ2Mob4efhehKzsIp+tXG+29+dlC0eyYpJOrlO4yv/FPYTWXXvRGVUU/F8Y070wBF2Kj7ai1dpWQvCfYlPCltEVSWsjZ8ipyDhS1CiGWOOktL0/rzJDIkRHTjvYbPANQ6hssK67hto67iGnLpI5UceiFCt/EOWdpM3c699NsZzBEK42/t8MCbRmHVHO0F40JFuERDcK9fvuLGJdKxcnQceiFCvXWKzRbfX3AymWMxgSZB7BmRZbV1hT/dL2UbdLdwxlR7Ty5ncNSZ6G4gtxBTl1EYuTsGPNFEspumwpltHDQvKGMOkHtwHoIX/WMFfbh70u3lOXHBFuhvjvlRlS51lGzZCVedxdN2Rbho2py4UUaxs9naoxxaKUMhXJlGIVljpmDIakC6x6fCsmKvHLpe39uVx+6oQf1PCw/zCtwj9kMQNJghciRvymR7LAZ7OU6DqXUyxmh5lzB2i5pV057OqPkn3+iLOylzqFGAxJQkDMSbiHlGy36WztLxkSN805craPTrYmaV+IR5IFL8U766QfXs/ImZVYCnc5dZFuLBJROO5msg6Yl/bz/IquEx71th/Xy6aRRbVz3dz/GHrnWWG9e0bOonQ3hPPlx6WE8dlJxtshOxZzAu3fTNE+SXzhmo9Lps816WUGc+AbRVV6k6EX+0pjRQ9NRZqxj1RJ+5vySbeI96826+2Fljf40/+nDsBtYAgAGjAEAA0YAoAGDAFAA4YAoAFDANCAIQBowBAANGAIABowBAANGAKAxj8RJAf2oEbylwAAAABJRU5ErkJggg==" alt="" />

4、CSS规则之重要性(!important)

!important具最高特特性比如说1000,因此!important规则会覆盖内联STYLE属性的内容。程序代码

<style type="text/css">
H1{color:red!important;}
</style>
<H1 style="color:black;">MeerkatCentral!</H1>

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQEAAAArCAIAAAD3zqpOAAAES0lEQVR4nO2b25XrIAxF6dIlUYpLoYx8pgzdD2zMQwJJdmzPRWflY1YGgziweZm4z+cDJtPEcsaAaXIZA6bZZQyYZpcxYJpdxoBpdhkDptllDJhmlzFgml3GgGl2GQOm2WUMmGaXMWCaXcaAaXYZA6bZZQyYZtcEDAQPzkF4OgyTQt6Bc7B+WYljQzsHXtbYNAPrsuWIZxqO/zoHzotKvUVlhG9j4LuWBjpYFkX7/YfyrnaGyUB6cFlFBXbngaOdmi6eNyEzxEeU4nxR1/rCEq1bIDnn3zyaPKTUdu9gIGutqHyWMAai1gUxqgloB6Dp65ulwxx+Jlb8N+plDDRxePlU9YjuYyB27lEfSmMHGo9/cMrixX+npAwkby/bD0DJQJFvudQ2Bo6C+n0o+UYseOKu7hE/WfHfKykD1++Jodq3eeL7J9psqy2jwe5hoLNozKVtJJnicCgqgRl/Et//M1IzIOyQfAayCkeXl6VXZL5h4EQ2Tp9W0k1IxUlCOcS2DGgKouIPSDJHB5PiVCAwDrs5B6sfabusKH6V/zI/q+eEDGjHOwYDS7OE9Q7cAiuF3e5sGu0650ua9Mn0BUJWbY+Zi/qyDRhY5mgmbYRIJYZDI3YcxJLEnzQWFo8wihYN7Xz/1X6CnIGU7fUMrGsZcdjcx6ee3W4KjHrPLk0PANUI5+svcwtaBnoL32zEqnwcHtr8igGhPwcDZSnD/iRigOv/CT85MTd1UA0xLAbCVpNod/zSB5yB8RBbhihNH3W0wajCFQPqnd+wi4z7UODGjGQr9bMdC0dDr5IB7ZaAU9ybGPgW1Ma/1y/GwLegpdLa7h+k6Rn/QqsQ+4RivVi/s7yZAbk/NzMgPQ7h+wkKBpTHuzwGcmf9XgzCwHCPdTL9Lv7rpMNH6py3VRlVTHzBPKBYC8n9uZUBZkVUfoKaAWIPSYvHwOFgNjV3GOC+qJOm36VgoPpQFFDr6QsYUJwLyf15GwNqP+F1DJTHWwXKf4eBkJWIOjU+bznHwHAJkfZae6Z/m4EzfoKCAaWYDJQruWhjZz/AZVGafpeCgaNf0S+qOn30EgZS0VSfrl9vyf15FQNn/IQXMtBOaui50Pg+TFltafriKe17YmpNgh9mA4CWgfoWWn9LEBA8pP5cywB1i47p/xk/4YUMpIBSI+HvB+jFRkxft4E0PQCcZoAqtHPp6igx4AmQgrA+nZK1OeAX5oT+qBlgxh8lnQcUfoKcgR/eG90i2MewFC4106GXT7brFVhw0vSgOxcqk+Iromzbk9JXb17XlWiV5hyTugSKrIhCr7FF/gwZIPsHO37g+3/GTykD+emT7HiU9zuy6MthSntm14xSd9wXyj7jX7pl1vTLan/H5ENR+rAbpQ8x5mKlsMdU0p+mvinO9lk8sH78Uv+pmo78bNMzXfrJPGAyTSBjwDS7jAHT7DIGTLPLGDDNLmPANLuMAdPs+gfMZILrY8kO8wAAAABJRU5ErkJggg==" alt="" />将显示为RED颜色。

一种特殊情形

<style type="text/css">
P#warn
{
color: Red !important;
}
EM
{
color: Black;
}
</style>
<p id="warn">
Thistextisred,but<em> emphasizedtextisblack.</em>
</p>

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAATQAAAAbCAIAAAB9buSfAAACTklEQVR4nO2aa07EMAyEc/9L7lHKH1i6sWfsvIqF5hNCWcevlEwTrWiv1+sSQtSjSZxC1ETiFKIoEqcQRZE4hSiKxClEUSROIYoicQpRFIlTiKJgcbYGf2AyPPUAh6qHS/7bVWNaa21Hb+tJdnUSVplro/0wV/Tc0qg43cGWVhaTPKwHXm60mQebf0ASSe6dLG7olXASeCLnIolrbVdb4hyaXfefpaYy7cfFbFsCCyrzmhdnd51DN157GUY3ZNcN2ZGRV7dj3n/mJk/WiMaZnL+5P25c7RNi7OwkZ5jWjUUZkPNQ+Hs8tPywT7f0e4o/efLokPM6U+K0N97w44QnquJa8tVdEZLqqNx0ePpPeN9VnfH+m3siI3JAPYzmsUpzYzPLJC2FOcNCYXjm2W6X5XfypWttuO3QEUHOKC4kVChfHbnZ04+Xc2f3iRO9+y+zIYYEec/cWdweUG+ZPlH1cJmjLbliy+iN50Qr6gIPKfM6Lk5kzweuiDNZK8z2R+JExmlx8t2WsVhj6JM8Nm2GFXHyNjLvi24qI+DtnBTnoqe70ZElX51n4+oKj+ID4rS7Cokz3Itkg2Ys74049zpwLeEybUvJl0imT9fCo8I+N2o1EmfDX724Y9cZaanbwbwQCU9Wd93c6sifdJIJR2v3sNeqTpn3gfXsZrspN5y4IaMtwZ3vnZNldmtE4XPNh03yDLxPt+dp9B9Cg+x79FvYuBVENSTONInj7kncc0n8JyROIYoicQpRFIlTiKJInEIUReIUoigSpxBFkTiFKMoXx6W5DmrGz+YAAAAASUVORK5CYII=" alt="" />

虽然定义!important最高特殊性,但句子并没有全部显示为RED红色,为什么呢?

也许我们得回头看看前面的规则,在前面的第二点继承中提“在特殊性的框架下,继承值只有特殊性0。”

因此,即便定义!important,继承里的特殊性也只有0,所以显示为特殊性为1的EM规则。

权重顺序为:继承=>HTML普通选择符=>类选择符=>style元素=>!important

5、CSS规则之层叠

1)若两条规则具有相同的权值、起源及特殊性,那在样式表中最后出现的规则优先。

2)任何位于文档中的规则都比引入的规则优先。

CSS规则的执行顺序(转)的更多相关文章

  1. iptable规则的执行顺序

    众所周知,iptable的中包含了各种各样的table和规则链条.这篇博文对规则链的执行顺序做一个简单的介绍. Chain OUTPUT (policy ACCEPT)target prot opt ...

  2. 性能测试学习之路 (二)jmeter详解(jmeter执行顺序 && 作用域 && 断言 && 事务 &&集合点 )

    1 Jmeter 工作区介绍 jmeter工作区分为3个部分:目录树.测试计划编辑区域.菜单栏. 2 Jmeter 执行顺序规则 Jmeter执行顺序规则如下: 配置元件 前置处理器 定时器 采样器s ...

  3. 高手总结的CSS执行顺序及其优先权问题汇总

    今天在看一本书时又看到了”CSS优 先权“这个问题,感觉这个问题还是比较重要的,也算是样式的特异性吧,尤其是在面对较多.较深层.较复杂的样式属性时,理解CSS的加权计算方法对于重写 样式属性之类的问题 ...

  4. html/css基础篇——link和@inport详解以及脚本执行顺序探讨

    先说一说两者之间的异同 两者都可以引用外部CSS的方式,现在主流浏览器两者都支持(ps:@import是CSS2.1提出的),但是存在一定的区别: 1.link是XHTML标签,除了加载CSS外,还可 ...

  5. JMeter学习笔记--JMeter执行顺序规则

    JMeter执行顺序规则: 配置元件 前置处理器 定时器 采样器 后置处理器(除非服务器响应为空) 断言 监听器 只有当作用域内存在采样器时,定时器.断言.前置/后置处理器才会被执行,逻辑控制器和采样 ...

  6. jmeter执行顺序及作用域规则

    1.执行顺序 配置元件 前置处理器 定时器 采样器 后置处理器 断言 监听器 备注: 服务器响应为空的话后三个不执行 作用域内存在采样器时定时器.断言.前置/后置处理器才执行 逻辑控制器和采样器按照在 ...

  7. Iptables规则执行顺序详解

      1.The first is the mangle table which is responsible for the alteration of quality of service bits ...

  8. CSS规则整理

    一. 善用css缩写规则 /*注意上.右.下.左的书写顺序*/1. 关于边距(4边):1px 2px 3px 4px (上.右.下.左)1px 2px 3px (省略的左等于右)1px 2px (省略 ...

  9. JMeter专题系列(三)元件的作用域与执行顺序

    1.元件的作用域 JMeter中共有8类可被执行的元件(测试计划与线程组不属于元件),这些元件中,取样器是典型的不与其它元件发生交互作用的元件,逻辑控制器只对其子节点的取样器有效,而其它元件(conf ...

随机推荐

  1. SharePoint 2010 文档管理系列之星级评论功能

    前言:正如我们前面介绍的是,文档管理就是让大家更加直观.方便的对手里的文档,进行统筹掌控,哪些文档是有价值的,哪些文档更受大家欢迎,所有就带来了这个星级评论. 当然,这个是SharePoint 201 ...

  2. Sharepoint学习笔记—习题系列--70-573习题解析 -(Q63-Q65)

    Question 63You have a SharePoint farm that has more than 100 custom Features.You upgrade several Fea ...

  3. 我在用的mac软件(3)-效率篇

    距离上篇博客竟然一晃就2个月过去了……最近确实太忙了,但一忙其实就容易乱,反而积累就少. 今天继续介绍下我在用的mac软件.标题为效率篇,其实没有严格的限定,就是杂乱的介绍我在用的感觉能提升效率的工具 ...

  4. 【读书笔记】iOS-开发技巧-UILabel内容模糊的原因

    在非Retina的iPad mini的屏幕上,一个UILabel的frame的origin值如果有小数位数(例如,0.5),就会造成显示模糊.所以最好用整数值的origin坐标. 参考资料: < ...

  5. Retrofit源码设计模式解析(下)

    本文将接着<Retrofit源码设计模式解析(上)>,继续分享以下设计模式在Retrofit中的应用: 适配器模式 策略模式 观察者模式 单例模式 原型模式 享元模式 一.适配器模式 在上 ...

  6. iOS之 kamailio-4.3.4sip服务器搭建-mac

    如要转载请注明出处http://www.cnblogs.com/chengxiaoyu/p/5006352.html 1.安装MySQL 去http://www.mysql.com/下载最新版本的My ...

  7. iOS之UI--通讯录的实例关键知识技术点积累

    通讯录的实例关键知识技术点积累 效果展示: 作为博文笔记,既然是笔记,目的是为了能够以后做这个项目能够快速上手,如果这是我下一次阅览这个博文笔记,那么我应该先空手从零开始做,需求也就是这个项目的展示效 ...

  8. DEV 财务货币格式单元格

    在用友金蝶等财务软件中,经常需要输入货币类型的数据, 那么这种输入框要如何制作呢? 扩展DataGridView 的功能  出自在天空飞翔博客 http://www.cnblogs.com/micha ...

  9. ReportViewer技巧汇总

    在MVC项目中使用ReportViewer 创建WebForm,向Webform中添加ReportViewer控件,通过CodeBehind设置报表参数并填充数据,测试通过后在MVC的View中iFr ...

  10. 问题解决——VS2010 将生成的文件复制到指定位置

    我是从VC6直接过渡到VS2010的,VS2008没怎么用过.用VS2010的时候,每次生成dll后,手工把dll.lib..h文件复制到指定文件夹太麻烦了,所以着手写了这个. =========== ...