如何用!important解决浏览器兼容性问题

"!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">计算机基础知识 www.3lian.com</div>
</body>
</html>

在查看其他人这方面的文章的时候,发现很多误区,有人干脆就认为"ie都是不支持!important"这个属性的,而有的人则又认为"ie6是不支持这个属性的",呵呵,其实"ie6不是不支持,只是有个小bug",欢迎讨论,指教,在不同的意见中提高技术。

某些懂一些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的支持是这样的,单个的类是支持的,比如:

代码如下:
.className{color:#ffff00!important}
.className{color:green;}

这样是支持的,但是:

代码如下:
.className{color:#ffff00; color:green}

这样是不支持的。

时间: 2024-08-03 03:52:14

如何用!important解决浏览器兼容性问题的相关文章

Javascript解决浏览器兼容性问题

兼容性问题是由于多个浏览器同时存在而导致的.这些浏览器在处理一个相同的页面时,表现有时会有差异.这种差异可能很小,甚至不会被注意到:也可能很大,甚至造成在某个浏览器下无法正常浏览.我们把引起这些差异的问题统称为"浏览器兼容性问题".下面让我们一起来看Javascript在解决兼容性问题上的方法. 1. document.form.item 问题 问题: 代码中存在 document.formName.item("itemName") 这样的语句,不能在FF下运行 解

【前端】浏览器兼容问题都有哪些,通常怎么解决浏览器兼容性问题

问题描述 [前端]浏览器兼容问题都有哪些,通常怎么解决浏览器兼容性问题 正在学习前端,看到一个新词叫浏览器兼容性,请问浏览器兼容性问题一般都有哪些呢?通常怎么解决这些问题呢? xiexie~~ 解决方案 感觉可以划分为两个问题吧:1.因为标准在提升老旧的浏览器可能不支持html5和css3导致兼容性问题.解决方式:考虑业务支持环境尽可能的以最低版本浏览器进行Bug测试.2.浏览器内核差异最值得吐槽的是IE浏览器和别的很多浏览器都不一样举个例子: <body> <a href="

jQuery解决浏览器兼容性问题案例分析_jquery

本文实例分析了jQuery解决浏览器兼容性问题的方法.分享给大家供大家参考,具体如下: 问题: 当用户在名为abc的input控件按下回车键时,触发另一控件imgLogin的click事件 在IE 中 document.getElementById('abc').click();能够调用abc的click事件 但是在FF中却不行. 解决方法: 必须以下这样: var evt = document.createEvent("MouseEvents"); evt.initEvent(&qu

通过js框架jquery判断IE浏览器版本来解决浏览器兼容性问题

 IE还真是让设计师恨的牙痒痒的东西,且现在已经有IE6.IE7.IE8.IE9.IE10这个五种不同版本的浏览器,且都有一点小差异.但是没办法,为了让网页在每个浏览器中显示都一样还必须迁就它. 不过现在我基本上都不太愿意对低版本的IE去做兼容了.比如IE6.IE7这些直接忽略!IE8的话还凑合一下.好在IE9和IE10对网络标准支持都比较了,等IE9版本以上的浏览器普及以后就好很好了. 但是不做兼容归不做兼容,还是要简单的处理一下的.幸运的是 jQuery 提供了 browser 标记来让我们

CSS Hack解决浏览器兼容性问题

网页设计遇到最大的麻烦之一莫过于网页对不同浏览器的兼容性问题了,因为IE 6.0 / IE 7.0 / firefox 2 / Opera 9等主流浏览器对CSS解析不近相同,导致设计的页面效果不一样,所以用什么方法可以有效解决不同浏览器不同页面效果的问题呢?广泛被使用的方法就是CSS Hack,即使用特别的CSS定义显示网页在不同浏览器的设计风格,针对不同的浏览器去写不同的CSS,最大化兼容浏览器. 一般情况下,我都会兼顾IE 6.0 / IE 7.0 / firefox 2.0浏览器,下面是

asp.net下用服务器端代码解决浏览器兼容性问题_实用技巧

用代码判断客户端使用的浏览器版本 Response.Write(Request.ServerVariables["HTTP_USER_AGENT"]);(貌似ASP上也可用这个) 或 Response.Write(Request.UserAgent); 我的是IE7输出: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SE 1.X; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET

JavaScript中解决多浏览器兼容性23个问题的快速解决方法_javascript技巧

一.document.formName.item("itemName") 问题 问题说明:IE下,可以使用 document.formName.item("itemName") 或 document.formName.elements ["elementName"]:Firefox 下,只能使用document.formName.elements["elementName"]. 解决方法:统一使用document.formNa

浏览器兼容性问题大汇总_javascript技巧

JavaScript 1.HTML对象获取问题 FireFox:document.getElementById("idName"); ie:document.idname或者document.getElementById("idName"). 解决办法:统一使用document.getElementById("idName"); 2.const问题 说明:Firefox下,可以使用const关键字或var关键字来定义常量; IE下,只能使用var

IETester中文免费版 – 最佳网页IE浏览器兼容性测试工具

IETester中文免费版 – 最佳网页IE浏览器兼容性测试工具(IE6 IE7 IE8共存) 对于很多拥有自己博客或者接触网页制作的朋友,肯定会遇到自己辛苦写好的页面在不同的浏览器下显示出来的效果截然不同吧,喜欢追求完美的朋友就肯定希望能尽量在不同浏览器下对页面进行测试并保证其正常显示了.当然,像FireFox.Safari.Opera等浏览器还可以随意地安装卸载,然而,最麻烦的莫过于微软的"IE"系列了. 基本上你不能用常规的方法同时在一个系统中安装IE5.IE6.IE7甚至IE8