CSS兼容处理(二)

  • 在IE6及以下版本的浏览器中定义小高度:

解决方法:#text { overflow:hidden; height:1px; font-size:0; line-height:0;}

具体详解:IE6及以下浏览器无法定义小高度的原因是,默认有行高。

  • 在IE6及以下版本浏览器中定义最小高度:

解决方法:#text { min-height:100px; _height:100px;}

注意:此时#text不能设置overflow为hidden,否则模拟min-height失效。

  • 解决按钮两边增白:

解决方法:input,button { overflow:visible; }

  • li两个浮动以上出现空白:

解决方法:li { vertical-align:top}

除了top,还可以设置text-top、middle、bottom、text-bottom,甚至特定的宽度和长度。

  • IE6下不能识别伪元素:first-letter/:first-line的问题:

解决方法:

方法一:花括号前增加空格。

如:

p:first-letter { float:left; font-size:40px; font-weight:bold;}

p:first-line { color:#090;}

方法二:花括号前换行。

如:

p:first-letter

{float:left; font-size:40px;font-weight:bold;}

p:first-line

{color:#090;}

  • 在IE8中伪元素:first-letter/:first-line中忽略!important规则:

解决方法:尽量不要在:first-letter/:first-line中使用!important。

  • 在IE6中同一条样式中忽略!important规则:

解决方法:把同一样式分开两个规则来定义同一个样式。

  • li内部元素定义了display:block的内联元素底部产生空白:

     解决方法:给li内联元素加一个zoom:1.

代码示例:

BUG重现:

a,span { display:block;background:#ddd;}

<ul>

<li><a href="...">常用手册</a></li>

<li><a href="...">常用手册</a></li>

<li><a href="...">常用手册</a></li>

<li><span>测试li内部元素定义了display:block的内联元素底部产生空白</span></li>

</ul>

具体详解:这个BUG出现在IE6及以下版本的浏览器。

  • 未定义宽度的浮动或绝对定位会被内部设置了zoom:1撑开:

解决方法:

方法一:设置ul为浮动元素

方法二:设置ul为inline元素

方法三:设置ul的width

代码示例:

BUG重现:

#test { zoom:1;  overflow:hidden; border: 1px solid #ddd; background:#eee; }

#test h1 { float:left;}

#test .nav {float:right; background:#aaa;}

#test .nav ul { zoom:1; overflow:hidden;margin:0; padding:0;list-style:none;}

#test .nav li {float:left;margin:0 5px;}

<div id="test">

<h1>Doyoe</h1>

<div class="nav">

<ul>

<li><a href="...">常用手册</a></li>

<li><a href="...">常用手册</a></li>

<li><a href="...">常用手册</a></li>

</ul>

</div>

</div>

具体详解:如上述代码,IE6及以下版本浏览器的div,nav会被zoom:1的ul所撑开。

  • 相对定位时父元素overflow属性为auto/hiddle时,失效:

解决方法:给div也设置一个相对定位。

相关代码:

div { overflow:auto; width:260px; height:80px; border: 1px solid #ddd; }

p { position:relative; margin:0; }

<div>

<p>123456</p>

<p>123456</p>

</div>

具体详解:如上述代码,在IE7及更早浏览器下你会看到滚动条将无法工作。在P标签上加一个相对定位即可。

  • 在谷歌浏览器中应用transition时页面闪动:

解决方法:-webkit-transform-style:preserve-3d;或-webkit-backface-visibility:hidden;

原文地址:https://www.cnblogs.com/john-jxsr/p/8472338.html

时间: 2025-01-12 14:37:26

CSS兼容处理(二)的相关文章

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

{转}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

【转载】各浏览器CSS兼容问题

CSS对浏览器的兼容性有时让人很头疼,或许当你了解当中的技巧跟原理,就会觉得也不是难事,从网上收集了IE7,6与Fireofx的兼容性处理方法并 整理了一下.对于web2.0的过度,请尽量用xhtml格式写代码,而且DOCTYPE 影响 CSS 处理,作为W3C的标准,一定要加 DOCTYPE声名. CSS技巧 1.div的垂直居中问题 vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了.缺点是要控制内容

CSS兼容常用技巧

请尽量用xhtml格式写代码,而且DOCTYPE影响 CSS 处理,作为W3C标准,一定要加DOCTYPE声明. 1.div的垂直居中问题 vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了.缺点是要控制内容不要换行 http://www.php100.com 2. margin加倍的问题 设置为float的div在ie下设置的margin会加倍.这是一个ie6都存在的bug.解决方案是在这个div里面加

css兼容技巧

CSS兼容常用技巧 请尽量用xhtml格式写代码,而且DOCTYPE影响 CSS 处理,作为W3C标准,一定要加DOCTYPE声明. 1.div的垂直居中问题 vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了.缺点是要控制内容不要换行 http://www.php100.com 2. margin加倍的问题 设置为float的div在ie下设置的margin会加倍.这是一个ie6都存在的bug.解决方案

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

CSS兼容各浏览器的hack

CSS兼容各浏览器的hack:建议:尽可能的手写代码,可以有效的提高学习效率和深度.浏览器的种类多,麻烦自然也多,主要是各种浏览器对某些属性的渲染效果并不相同,所以有时候需要专门针对特定浏览器或者特定版本书写CSS代码,这样就需要用到所谓的“CSS Hack”,下面以一段实例的形式介绍一下个浏览器hack. <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content

CSS学习(二)—浮动

一. 定义 浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止. 解决的问题:"如何在一行显示多个div元素" 二. 浮动与不浮动区别 图1 图2 区别 不浮动的框是由上往下独占一行的,而浮动的框是紧靠着排列的.图2中d1.d2.d3都是向左浮动的,所以先把d1放在紧靠着父框摆放,然后把d2紧靠着d1摆放,最后d3紧靠着d2摆放.向右浮动亦与之类似. 语法: float : none | left |right 参数: none : 对象不浮动 left :

纯css兼容个浏览器input[type=&#39;radio&#39;]不能自定义样式

各个浏览器对于表单input[type='radio'].input[type='checkbox']的样式总是各有差异 //html <div class="remember-account"> <input type="checkbox"> <span>记住账号</span> </div> //css .remember-account { display: inline-block; font-siz

最新CSS兼容方案

CSS兼容方案,让你的样式完美兼容各大浏览器,这个方案主要是用来解决Safari的,Opear是在测试的时候顺带试了一下,结果发现竟然也行,所以顺便也解决了. .e {/*FF OP*/ color: rgb(68, 68, 68); font-family: 'Hiragino Sans GB', Tahoma, Simsun, 'Microsoft Yahei';">} html* .e{/*Sa IE7 OP*/ color: rgb(68, 68, 68); font-family