important的妙用解决firefox和ie的css兼容问题

对于某些内容可变的层(比如用户评论),我们希望它有个最小的高度 (比如30px),这样的话,即使内容只有一行字,也不会太难看;同时又希望在内容比较多的时候,层的高度能自动撑开,也就是要求height: auto。这时候就可以设置css的min-height属性。min-height在Firefox里有效,但IE无法识别。 可以使用下面这个解决方案:

复制代码

代码如下:

.div_class{ 
min-height:30px; 
height:auto !important; 
height:30px; 
}

第一行设置 min-height:30px;对Firefox有效;第二行height:auto !important;也对Firefox有效,后面紧跟的“!important”是Firefox专用的一个标记,带有这个标记的设置具有最高优先 级,之后的设置都无效。所以第三行的height:30px对Firefox无效了;同时,由于IE无法识别min-height和“! important”,所以只有第三行有效,由于IE默认就是高度自适应的,所以即使设置了30px的高度,只要内容很多,也会自动撑开,不需要设置 height:auto。最后,上述代码产生如下效果:

对于Firefox,等同于:

复制代码

代码如下:

.div_class{ 
min-height:30px; 
height:auto; 
}

对于IE,等同于:

复制代码

代码如下:

.div_class{ 
height:30px; 
}

“!important” 是个非常好用的东西,如果你写过几个月的跨浏览器的CSS代码,就很容易被Firefox和IE之间的差别而感到恼火。比如padding属性就是一个例子。

假设这样一个层:

复制代码

代码如下:

.div_name { 
width:100px; 
padding:10px; 
}

在IE里面,层的宽度是100px,四周的余空为10px;但是对于Firefox,层的宽度变成了100px+10px+10px=120px,对于宽度敏感的设计来说,整个就混乱了。怎么办呢?还是求助于“!important”吧。只要这样写就可以了:

复制代码

代码如下:

.div_name { 
width:80px !important; 
width:100px; 
padding:10px; 
}

因为80+10+10=100。正好让宽度 变成100px。

有时候,我们给一个层加上边框 ,在Firefox里面也会出现宽度增加的情况,比如:

复制代码

代码如下:

.div_name { 
width:100px; 
padding:10px; 
border:2px solid #ccc; 
}

上面这个层,在Firefox里面的实际宽度等于100+10+10+2+2=124px,因为边框也会增加宽度。怎么办呢,还是靠“!important”,这样写就可以了:

复制代码

代码如下:

.div_name { 
width:76px !important; 
width:100px; 
padding:10px; 
border:2px solid #ccc; 
}

时间: 2024-10-27 11:44:18

important的妙用解决firefox和ie的css兼容问题的相关文章

Firefox与IE的CSS兼容CSS HACK技巧

1. Div居中问题 div设置 margin-left, margin-right 为 auto 时已经居中,IE 不行,IE需要设定body居中,首先在父级元素定义text-algin: center;这个的意思就是在父级元素内的内容居中. 2.CSS 链接(a标签)的边框与背景 a链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行.参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height

解决Firefox下input button内文字垂直居中

众所周知,在Firefox下input type=”button”的文字是不好居中的,原因在于Firefox自己比较二,弄了个私有属性,导致以下问题的出现: 按钮左右本身有2px的间距(FF私有属性写了padding:0 2px所致): 按钮文字居中是不行的(此时设置padding-bottom是没用的) : 等等… 1 input[type="reset"]::-moz-focus-inner, 2 input[type="button"]::-moz-focus

Nginx配置免费SSL证书StartSSL,解决Firefox不信任问题

先在StartSSL上申请免费一年的SSL证书,具体过程网上很多教程.然后把申请到的key和crt文件上传到服务器,比如/usr/local/nginx/certs/. Nginx配置SSL证书 直接贴上我的nginx的部分配置: server { listen 443; server_name domain.com www.domain.com ; ssl on; ssl_certificate /usr/local/nginx/ssl/ssl.crt; ssl_certificate_key

解决firefox和IE9对icon font字体的跨域访问问题

何为跨域访问,为什么会有跨域限制?一切还得从浏览器的同源策略说起. 同源策略:是浏览器最核心也是最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能会受到影响,可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现. 浏览器的同源策略:限制了来自不同源的“document”或脚本,对当前“document”读取或设置某些属性.同源策略的存在,限制了“源”自A的脚本只能操作“同源”页面的DOM,“跨源”操作来源于B的页面将会被拒绝. 何为同源呢?“img.company.

解决Firefox已阻止运行早期版本Adobe Flash

解决Firefox已阻止运行早期版本Adobe Flash 类别    [随笔分类]web 最近火狐浏览器不知抽什么风,每次打开总提示"Firefox已阻止(null)运行早期版本的Adobe Flash".要命的是它提示的解决办法根本不管用,最终还是自己在网上找了插件才解决的.下面看看具体操作吧. 方法/步骤 先看现象. 它会有"继续屏蔽"和"允许"两个按钮. 点了"允许"后会提示"本次允许"和"

解决Firefox不能同步问题

因为某些不能言明的原因,本人要转战Firefox了,转战Firefox之前用的是什么呢?Chrome 但是今年开始Chrome已经在国内要崩溃了,因为某些原因谷歌的东西一直不太好用,今年更是根本已经用不了了,就算翻过那道看不见的墙,chrome居然还是同步不了,本人只是想同步个书签而已就这么点小事都成了奢求了,不得已只能转战Firefox了,所幸的是Firefox也并不比Chrome差. 说干就干,马上就从网上下载了Firefox安装包装上了,装上之后发现居然可以直接从chrome导入书签,实在

div+css 兼容ie6 ie7 ie8 ie9和FireFox Chrome等浏览器方法(非原创)

div+css 兼容ie6 ie7 ie8 ie9和FireFox Chrome等浏览器方法 1.DOCTYPE 影响 CSS 处理 2.FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行 3.FF: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中 4.FF: 设置 padding 后, div 会增加 height 和 wi

IE和firefox火狐在JS、css兼容区别

1.firefox不能对innerText支持. firefox支持innerHTML但却不支持innerText,它支持textContent来实现innerText,不过默认把多余的空格也保留了.如果不用textContent,如果字符串里面不包含HTML代码也可以用innerHTML代替. 2.禁止选取网页内容: 在IE中一般用js:obj.onselectstart=function(){return false;} 而firefox用CSS:-moz-user-select:none

{转}div+css 兼容ie6 ie7 ie8 ie9和FireFox Chrome等浏览器方法

div+css 兼容ie6 ie7 ie8 ie9和FireFox Chrome等浏览器方法 1.DOCTYPE 影响 CSS 处理 2.FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行 3.FF: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中 4.FF: 设置 padding 后, div 会增加 height 和 wi