你对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. Microsoft Dynamics CRM 前瑞开发

    做CRM开发最大的感受就是其前瑞开发过程中,调试起来比较麻烦,需要做一些断点还要配制一些浏览器设置,对新手来说比较困难.还有就是对REST调试,经常为了调试一个正确的结果而花费大量的时间.现在推荐一个 ...

  2. Cannot export AX project in AX7

    I tried to export project from VS.  I succeed before.  But today I got a Microsoft Visual Studio err ...

  3. 2015年第8本(英文第7本):the city of ember 微光城市

    书名:the City of Ember(中文名:微光城市) 作者:Jeanne DuPrau 单词数:6.2万 不重复单词数:未知 首万词不重复单词数:未知 蓝思值:未知 阅读时间:2015年4月2 ...

  4. Python基础(4)--字符串

    所有标准的序列操作对字符串都适用,但字符串是不可变的 本文地址:http://www.cnblogs.com/archimedes/p/python-string.html,转载请注明源地址. 字符串 ...

  5. 全球最低功耗蓝牙单芯片DA14580的硬件架构和低功耗

    号称全球最低功耗蓝牙单芯片DA14580在可穿戴市场.健康医疗.ibeacon定位等市场得到广泛的应用,但是因为其较为封闭的技术/资料支持导致开发人员有较高的技术门槛,网络上也极少看到有关DA1458 ...

  6. 所有Mac用户都需要知道的9个实用终端命令行

    通常情况下,只有高端用户才会经常用到终端应用.这并不意味着命令行非常难学,有的时候命令行可以轻松.快速的解决问题.相信所有Mac用户都尝试过命令行,今天为大家带来9个非常实用的命令行操作.一些命令行需 ...

  7. javascript的模块化解读

    AMD是RequireJS在推广过程中对模块定义的规范化产出. 异步加载模块,依赖前置,提前执行. Define定义模块 define(['require','foo'],function(){ret ...

  8. iOS 应用架构浅谈

    当我们讨论客户端应用架构的时候,我们在讨论什么? 其实市面上大部分应用不外乎就是颠过来倒过去地做以下这些事情: 简单来说就是调API,展示页面,然后跳转到别的地方再调API,再展示页面. App确实就 ...

  9. Effective Java 59 Avoid unnecessary use of checked exceptions

    The burden is justified if the exceptional condition cannot be prevented by proper use of the API an ...

  10. Report List Controls

    Report风格的ListCtrl的扩展,原文链接地址:http://www.codeproject.com/Articles/5560/Another-Report-List-Control 1.列 ...