说明:本文档兼容性测试基础环境为:windows系统;IE6-IE10, Firefox6.0, Chrome13.0, Safari5.1, Opera11.51

Bugs及解决方案列表(以下实例默认运行环境都为Standard mode):

  1. 如何在IE6及更早浏览器中定义小高度的容器?

    方法:

    #test{overflow:hidden;height:1px;font-size:0;line-height:0;}

    IE6及更早浏览器之所以无法直接定义较小高度的容器是因为默认会有行高

  2. 如何解决IE6及更早浏览器浮动时产生双倍边距的BUG?

    方法:

    #test{display:inline;}

    当在IE6及更早浏览器中出现浮动后margin值解析为双倍的情况,设置该元素的display属性为inline即可。

  3. 如何在IE6及更早浏览器下模拟min-height效果?

    方法:

    #test{min-height:100px;_height:100px;}

    注意此时#test不能再设置overflow的值为hidden,否则模拟min-height效果将失效

  4. 如何解决按钮在IE7及更早浏览器下随着value增多两边留白也随着增加的问题?

    方法:

    input,button{overflow:visible;}
  5. 如何解决IE7及更早浏览器下当li中出现2个或以上的浮动时,li之间产生的空白间隙的BUG?

    方法:

    li{vertical-align:top;}

    除了top值,还可以设置为text-top | middle | bottom | text-bottom,甚至特定的<length><percentage>值都可以

  6. 如何解决IE6及更早浏览器下的3像素BUG?

    方法:

    .a{color:#f00;}
    .main{width:950px;background:#eee;}
    .content{float:left;width:750px;height:100px;background:#ccc;_margin-right:-3px;}
    .aside{height:100px;background:#aaa;} <div class="main">
    <div class="content">content</div>
    <div class="aside">aside</div>
    </div>

    在IE6及更早浏览器下为.content设置margin-right:-3px;也可以设置.aside为浮动

  7. 如何解决IE6下的文本溢出BUG(江湖匪号:“谍影重重”或“一只猪的故事”)?

    BUG重现:

    .test{zoom:1;overflow:hidden;width:500px;}
    .box1{float:left;width:100px;}
    .box2{float:right;width:400px;} <div class="test">
    <div class="box1"></div>
    <!-- 注释 -->
    <div class="box2">↓这就是多出来的那只猪</div>
    </div>

    运行如上代码,你会发现文字发生了溢出,在IE6下会多出一只“猪”。造成此BUG的原因可能是多重混合的,如浮动,注释,宽高定义等等。并且注释条数越多,溢出的文本也会随之增多。

    列举几个解决方法: 
     删除box1和box2之间所有的注释; 
     不设置浮动; 
     调整box1或box2的宽度,比如将box的宽度调整为90px

  8. 如何解决IE6使用滤镜PNG图片透明后,容器内链接失效的问题?

    方法:

    div{width:300px;height:100px;_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='*.png');}
    a{_position:relative;}

    解决方法是为容器内的链接定义相对定位属性position的值为relative

  9. 如何解决IE6无法识别伪对象:first-letter/:first-line的问题?

    方法1:

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

    增加空格:在伪对象选择符:first-letter/:first-line与包含规则的花括号"{"间增加空格。

    方法2:

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

    换行:将整个花括号"{"规则区域换行。细节参见E:first-letterE:first-line选择符

  10. 如何解决IE8会忽略伪对象:first-letter/:first-line里的!important规则的问题?

    BUG重现:

    p:first-letter {float:left;font-size:40px;font-weight:bold;color:#f00!important;color:#090;}

    如上代码,在IE8下color定义都会失效,原因就是因为有color使用了!important规则。鉴于此,请尽量不要在:first-letter/:first-line里使用!important规则。

  11. 如何解决IE6会忽略同一条样式体内的!important规则的问题?

    BUG重现:

    div{color:#f00!important;color:#000;}

    如上代码,IE6及以下浏览器div的文本颜色为#000,!important并没有覆盖后面的规则,也就是说!important被忽略了。解决方案是将该样式拆分为2条,细节参见!important规则

  12. 如何解决IE6及更早浏览器下当li内部元素是定义了display:block的内联元素时底部产生空白的问题?

    BUG重现:

    a,span{display:block;background:#ddd;}
    
    <ul>
    <li><a href="../">CSS参考手册</a></li>
    <li><a href="../">CSS探索之旅</a></li>
    <li><a href="../">web前端实验室</a></li>
    <li><span>测试li内部元素为设置了display:block的内联元素时底部产生空白</span></li>
    </ul>

    如上代码,IE6及更早浏览器每个li内部的内联元素底部都会产生空白。解决方案是给li内部的内联元素再加上zoom:1

  13. 如何解决IE6及更早浏览器下未定义宽度的浮动或绝对定位元素会被内部设置了zoom:1的块元素撑开的问题?

    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="../">CSS参考手册</a></li>
    <li><a href="../">CSS探索之旅</a></li>
    <li><a href="../">web前端实验室</a></li>
    </ul>
    </div>
    </div>

    如上代码,IE6及更早浏览器div.nav会被设置了zoom:1的ul给撑开。

    列举几个解决方法: 
     设置ul为浮动元素; 
     设置ul为inline元素; 
     设置ul的width

  14. 如何解决IE7及更早浏览器下子元素相对定位时父元素overflow属性的auto|hidden失效的问题?

    BUG重现:

    div{overflow:auto;width:260px;height:80px;border:1px solid #ddd;}
    p{position:relative;margin:0;} <div>
    <p>如果我是相对定位,我的父元素overflow属性设置为auto|hidden将失效。如果你使用的是IE及更早浏览器,你将可以看到这个BUG</p>
    <p>如果我是相对定位,我的父元素overflow属性设置为auto|hidden将失效。如果你使用的是IE及更早浏览器,你将可以看到这个BUG</p>
    </div>

    如上代码,在IE7及更早浏览器下你会看到div的滚动条将无法工作。解决方案是给div也设置相对定位position:relative

  15. 如何解决Chrome在应用transition时页面闪动的问题?

    方法:

    -webkit-transform-style:preserve-3d;或-webkit-backface-visibility:hidden;

    在Chrome下,使用过渡效果transition时有时会出现页面闪动

CSS Bugs 解决方案的更多相关文章

  1. IE CSS Bugs 列表和解决方法

    我们在开发中我们常会在IE中遇到很多莫名的bug,尤其是老态龙钟的IE6浏览器.为了提高我们的开发效率,需要经常总结,整理工作中遇到的问题.我们在网络上找到的IE Bugs 资料是零散的.不过,在老外 ...

  2. vue 在使用v-html绑定的时候,里面的元素不会继承外部的css,解决方案

    问题 想用vue绑定父文本生成的HTML内容,但是发现CSS样式根本不生效,选择器没起作用 代码: <div class="announcedetailImg" v-html ...

  3. css hack解决方案

    现在大家做项目的时候估计很多都已经不怎么考虑兼容问题,大多数的公司都已经舍弃ie7.8了,都是从ie9+开始,所以说不会有那么多的兼容问题需要去解决了,但是由于本人力求完美的工作习惯,做项目的时候还是 ...

  4. day09—css布局解决方案之全屏布局

    转行学开发,代码100天——2018-03-25 今天,本文记录全屏布局的的方法.全屏布局,即滚动条不是全局滚动条,而是出现在内容区域内,:浏览器变大时,撑满窗口. 如:设置下图中布局,其中top区, ...

  5. day08—css布局解决方案之多列布局

    转行学开发,代码100天——2018-03-24 本文将记录CSS布局之垂直布局解决方案. 常见的多列布局包括以下: 1.定宽+自适应 2.两列定宽+一列自适应 3.不定宽+自适应 4.两列不定宽+一 ...

  6. 【前端】这可能是你看过最全的css居中解决方案了~

    1.水平居中:行内元素解决方案 适用元素:文字,链接,及其其它inline或者inline-*类型元素(inline-block,inline-table,inline-flex) html部分代码: ...

  7. css居中解决方案

    水平居中 行内或者具有行内元素性质的元素(比如文字或者链接)? 让一个父元素为块级元素的行内元素水平居中,可以:CSS: 1 2 3 .center-children { text-align: ce ...

  8. Html / CSS常见问题 解决方案

    解决Safari下input光标过大 input { line-height: normal; } 设置浮层 html, body { /*只有父元素设置宽高为100%子元素设置宽高100%时才能撑满 ...

  9. CSS垂直居中解决方案

    问题场景 应用的地方比较普遍,这里有两个赤裸裸的栗子:   也有很多流行的方案,这里只针对各种方案的适用场景来做一些分析 问题抽象 其实,垂直居中问题可以简化成这样:一个容器HTML元素(#conta ...

随机推荐

  1. CmRegisterCallback使用方法

    部分代码 #include "my_sys_fun.h"#ifdef __cplusplusextern "C"{#endif //驱动加载函数 NTSTATU ...

  2. 小甲鱼PE详解之IMAGE_DOS_HEADER结构定义即各个属性的作用(PE详解01)

    (注:最左边是文件头的偏移量.) IMAGE_DOS_HEADER STRUCT {  +0h  WORD  e_magic  // Magic DOS signature MZ(4Dh 5Ah)   ...

  3. Java学习随笔5:Java多线程编程

    1. 线程是程序中单独顺序的控制流,线程本身依靠程序进行运行,线程是程序中的顺序控制流,只能使用分配给程序的资源和环境. 2. 进程是执行中的程序,一个进程可以包含一个或多个线程,但至少要包含一个线程 ...

  4. for循环嵌套

    今天复习了分支语句以及for循环,新内容主要讲解了for循环的嵌套: 外循环控制行,内循环控制列 下面几个实例: 五行五列的矩阵 左下角是直角的三角形: 左上角是直角的三角形: 右上角为直角的三角形: ...

  5. Spring中属性文件properties的读取与使用

    实际项目中,通常将一些可配置的定制信息放到属性文件中(如数据库连接信息,邮件发送配置信息等),便于统一配置管理.例中将需配置的属性信息放在属性文件/WEB-INF/configInfo.propert ...

  6. 捕获异常try:except

    常见的异常有:1.NameError 没有定义这个变量2.SyntaxError 这是语法错误3.IOEtror 这里是想打开的文件不存在4.10/0: ZeroDivsionertor 这个是除零错 ...

  7. POJ 1840 HASH

    题目链接:http://poj.org/problem?id=1840 题意:公式a1x1^3+ a2x2^3+ a3x3^3+ a4x4^3+ a5x5^3=0,现在给定a1~a5,求有多少个(x1 ...

  8. BZOJ 2342 回文串-Manacher

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2342 思路:先跑一遍Manacher求出p[i]为每个位置为中心的回文半径,因为双倍回文串 ...

  9. 内核终端判断,微信?QQ?ipad?IE?移动?Google?opera……

    $(document).ready(function(){ //判断访问终端 var browser={ versions:function(){ var u = navigator.userAgen ...

  10. 17996 Daily Cool Run (dp)

    时间限制:1000MS  内存限制:65535K 提交次数:0 通过次数:0 题型: 编程题   语言: 不限定 Description Daily Cool Run is a popular gam ...