辩驳一个默认的说法:IE6不支持!important (转http://www.cnblogs.com/lanyueer/archive/2011/03/29/1998398.html)
来源:互联网 发布:日军 知乎 编辑:程序博客网 时间:2024/06/03 02:26
一:"!important"是什么?
第一个,是设置样式的优先级,设了!important的样式的属性优先于id选择器和class选择器。,比如id为"Main"的div在它的Class设背景色为红色,,id选择器下又设了背景色为蓝色,照css的"就近原则",
它的背景色应该是红色了,因为id选择器的优先级高于class选择器,但是,一旦class里设了"!important",哈哈,id,一边去吧。。我背景颜色要优先显示class设置的啦,因为它有!important做后台呀。。
第二个,可以利用它让页面效果在ff等浏览器上和ie6效果更相同。。。。
因为不同的浏览器有自己默认的样式,所以你设一个样式在不同的浏览器里会有不同的效果,而有了!important,你就可以。。。话说,这里先略过,偶也没怎么用!important解决浏览器兼容性问题。。。
就是说,它是解决浏览器兼容性问题的有效方法之一。。。。。
先把代码贴出来,嘿嘿。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
#test {
color:red !important;/*IE7、FF、OP等显示红色文字*/
color:green;/*IE6显示绿色文字*/
}
span {color:gray !important;}
span {
color:gray !important;/*IE6将不会将文本显示为灰色(gray)*/
color:red;
}
</style>
</head>
<body>
<div id="test">我是即日旮旯</div>
</body>
</html>
声明哈。。。。div里面的文字没有讽刺吉日的说,,偶是很喜欢吉日的商业精神的,他是偶学习和敬佩的人之一,虽然园子里有些朋友说吉日老师推荐自己的软件,但是我觉得他的商业精神是很值得学习的。。
在查看其他人这方面的文章的时候,发现很多误区,有人干脆就认为"ie都是不支持!important"这个属性的,而有的人则又认为"ie6是不支持这个属性的",呵呵,其实"ie6不是不支持,只是有个小bug",欢迎讨论,指教,在不同的意见中提高技术。
这个在FF显示器下的效果:
这个是在IE6下的效果:
呵呵,为什么同样的代码,在不同的浏览器下的显示效果却会有这么大的差别呢?
某些懂一些css的朋友大概会说,是ie6不支持"!important",呵呵,这话说得有些对,但是不全对,为什么呢?
关键原因就是如果把样式改一下,
<
style
type
=
"text/css"
>
#test {
color:red !important;/*IE7、FF、OP等显示红色文字*/
/
}
#test {
color:green;/*IE6显示绿色文字*/
}
</
style
>
你会发现在ie下字体的颜色变得和在FF中一样了,而如果ie6真的不支持"!important"这个属性的话,ie下字体的颜色就应该是绿色,而不是红色,因为按照css的“就近原则”来说,字体的颜色一直都应该是绿色,而不是红色的。
但是 为什么我们把样式改了之后,字体颜色在FF和ie6下就不一样了呢,这应该是ie6下的一个bug,如果一个样式内重复设了属性,如"color:*",它就会忽略掉"!important"了。
呵呵,这样样式CSS1就有了,但一直没有很好的发挥它的作用,但是其实,我们可以利用它来解决一些浏览器兼容性问题造成的异常,做到让页面尽量在不同浏览器之间看起来一样。
小结,回复兰月儿博文的一位朋友对ie6对"!important"属性总结的很明白,偶截了图贴一下:
- 辩驳一个默认的说法:IE6不支持!important (转http://www.cnblogs.com/lanyueer/archive/2011/03/29/1998398.html)
- c#的迭代器,转自http://www.cnblogs.com/yangecnu/archive/2012/03/17/2402432.html
- JDBC连接数据库(http://www.cnblogs.com/hongten/archive/2011/03/29/1998311.html)
- 【转】http://www.cnblogs.com/springyangwc/archive/2011/03/30/2000388.html
- GCC 编译选项(转)http://www.cnblogs.com/xmphoenix/archive/2011/03/21/1989944.html
- 转自http://www.cnblogs.com/dirichlet/archive/2011/03/16/1986251.html
- IE6终极备忘:修复IE6下 25+ Bugs(转自:http://www.cnblogs.com/aiyuchen/archive/2011/05/11/2043844.html)
- IE6终极备忘:修复IE6下 25+ Bugs(转自:http://www.cnblogs.com/aiyuchen/archive/2011/05/11/2043844.html)
- 一个JavaScript的Hash类 http://www.cnblogs.com/fanrong/archive/2007/02/06/641556.html
- DataGrid动态添加模板列的一个例子 http://www.cnblogs.com/lovecherry/archive/2005/03/25/125526.html
- 从一个程序的Bug解析C语言的类型转换(转自:http://www.cnblogs.com/dolphin0520/archive/2011/10/15/2212834.html)
- Hadoop的运行痕迹http://www.cnblogs.com/JohnLiang/archive/2011/11/9.html
- 有关select的操作http://www.cnblogs.com/dcba1112/archive/2011/05/26/2057551.html
- GDB 下 watch的使用http://www.cnblogs.com/lonelycatcher/archive/2011/10/09/2204865.html
- _exit和exit的区别 http://www.cnblogs.com/hnrainll/archive/2011/08/17/2142001.html
- vector的reserve和resize http://www.cnblogs.com/qlee/archive/2011/05/16/2048026.html
- http://www.cnblogs.com/hemingwang0902/archive/2012/03/15/2397761.html异常的解决方案
- 设计模式http://www.cnblogs.com/qianxudetianxia/archive/2011/07/29/2121547.html
- menu控件在ie8中动态菜单显示不了
- WPF 控件移动时抖动的问题
- 把sql server 数据库的数据导入access数据库
- 设计模式之(十一、抽象工厂模式Abstract Factory)
- javascript和css在ie和firefox中关于兼容性问题的解决办法
- 辩驳一个默认的说法:IE6不支持!important (转http://www.cnblogs.com/lanyueer/archive/2011/03/29/1998398.html)
- Gedit中文乱码
- WebService的 HelloWorld : XFire , JAX-WS , JSR181
- 【转】在eclipse中用jdbc连sql server2005
- Printing Architecture
- CBitmap和HBITMAP的区别及相互转换方法
- swap & complete permutation
- 人的差别在于业余时间——细细品味
- 【转】 Lucene in action 笔记 term vector