font 标记的优先级(转)

 

转:http://hi.baidu.com/atmo/blog/item/9f51bc03dd1e3a8dd53f7c69.html

 诸如设置新闻标题颜色,如果是这样的代码
<a href="#"><font color="red">Atmo</font></a>
这样没问题,根据css优先级就近原则,你会认为在任何的环境下都会显示red颜色,继续往下看,确实一般情况下他显示的是red颜色。

如果定义了一个全局的css,定义了*或者font颜色
<style type="text/css">
    * {color:blue}
</style>
或者
<style type="text/css">
   font{color:blue}
</style>

<a href="#"><font color="red">Atmo</font></a>
那么此时的font里的颜色就不再是red,而是blue,这样就不符合css的就近原则,具体原因我不清楚,可能是font这个标签不符合w3c标准,属于被废弃的标签,也可能font这个标签根本就不属于css的范畴。

如果是
<style type="text/css">
    * {color:blue}
   font{color:yellow}
</style>
<a href="#"><font color="red">Atmo</font></a>
这样的话,font标签显示的颜色是yellow

如果是
<style type="text/css">
    * {color:blue}
   font{color:yellow}
</style>
<div style="color:#999999"><font style="color:green">Atmo</font></div>
font标签显示的是style里的颜色不受其他的影响,颜色是green
所以最终的解决办法是 <font style="..."></font>
这样不管外部的css如何写,都不会改变<font>的颜色
比如在做html编辑器、新闻标题的时候一定要注意,记得用style
很多新闻系统里都是 <font color=""></font>
这样如果外部定义了*{} 或者font{},你的<font color=""></font>就无效

经过测试发现,font的优先级

style > id > class > font > * > font color=".."

posted on 2009-04-24 09:32  alon  阅读(420)  评论(0编辑  收藏  举报

导航