IE CSS Bug 系列
1.【IE CSS Bug系列】IE6&IE7图片链接无效
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>IE6&IE7图片链接无效</title>
<style>
html,body {
padding: 0;
margin: 0;
} .m-box a { display: block; width: 270px; height: 129px; }
.m-box a img { border: 0 none; }
.m-box a span { *zoom: 1; } .m-fix a span { position: relative; z-index: -1; }
</style>
</head>
<body>
<h2>BUG复现</h2>
<p>触发条件:特定的嵌套(a>内联元素>img)</p>
<div class="m-box">
<a href="#">
<span>
<img src="http://www.baidu.com/img/bdlogo.gif" alt="百度一下,你就知道"/>
</span>
</a>
</div> <h2>BUG修复</h2>
<p>解决方案:给这个内联元素设置position: relative; z-index: -1;</p>
<div class="m-box m-fix">
<a href="#">
<span>
<img src="http://www.baidu.com/img/bdlogo.gif" alt="百度一下,你就知道"/>
</span>
</a>
</div>
</body>
</html>
2.【IE CSS Bug系列】IE6&IE7里overflow的auto|hidden定位
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>IE6&IE7里overflow的auto|hidden定位</title>
<style>
html,body {
padding: 0;
margin: 0;
} .m-box { width: 200px; height: 100px; background-color: red; overflow: auto; }
.m-box .pos { position: relative; } .m-fix { *position: relative; }
</style>
</head>
<body>
<h2>BUG复现</h2>
<p>触发条件:父元素overflow:hidden | auto,子元素相对定位</p>
<div class="m-box">
<div class="pos">
我是相对定位<br />
我是相对定位<br />
我是相对定位<br />
我是相对定位<br />
我是相对定位<br />
我是相对定位<br />
我是相对定位<br />
我是相对定位<br />
我是相对定位<br />
我是相对定位<br />
</div>
</div> <h2>BUG修复</h2>
<p>解决方案:给父元素设置position: relative;</p>
<div class="m-box m-fix">
<div class="pos">
我是相对定位<br />
我是相对定位<br />
我是相对定位<br />
我是相对定位<br />
我是相对定位<br />
我是相对定位<br />
我是相对定位<br />
我是相对定位<br />
我是相对定位<br />
我是相对定位<br />
</div>
</div>
</body>
</html>
3.【IE CSS Bug系列】IE6&IE7表单双边距
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>IE6&IE7表单双边距</title>
<style>
html,body {
margin: 0;
padding: 0;
} .m-box { width: 100%; margin-left: 100px; } .m-fix { *margin-left:0; }
</style>
</head>
<body>
<h2>BUG复现</h2>
<p>触发条件:IE6/IE7里表单父元素设置宽度和横向margin</p>
<div class="m-box">
<input type="text" value="双边距"/>
<textarea>双边距</textarea>
</div> <h2>BUG修复</h2>
<p>解决方案:hack</p>
<div class="m-box m-fix">
<input type="text" value="双边距"/>
<textarea>双边距</textarea>
</div>
</body>
</html>
4.【IE CSS Bug系列】IE6&IE7里Li间隙
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>IE6&IE7里Li间隙</title>
<style>
html,body {
padding: 0;
margin: 0;
} .m-box ul li { overflow: hidden; width: 100%; height: 24px; line-height: 24px; background-color: red; }
.m-box ul li span {
float: left;
} .m-fix ul li {
vertical-align: top;
}
</style>
</head>
<body>
<h2>BUG复现</h2>
<p>触发条件:li中浮动元素或者设置display:block</p>
<div class="m-box">
<ul>
<li>
<span>li内元素浮动</span>
</li>
<li>
<span>li内元素浮动</span>
<span>li内元素浮动</span>
</li>
</ul>
</div> <h2>BUG修复</h2>
<p>解决方案:给li设置vertical-align: top;</p>
<div class="m-box m-fix">
<ul>
<li>
<span>li内元素浮动</span>
</li>
<li>
<span>li内元素浮动</span>
<span>li内元素浮动</span>
</li>
</ul>
</div>
</body>
</html>
5.【IE CSS Bug系列】IE6奇数宽定位1px
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>IE6奇数宽定位1px</title>
<style>
html,body {
margin: 0;
padding: 0;
} .m-box { position: relative; width: 201px; height: 200px; background-color: red; }
.m-box-inner { position: absolute; width: 20px; height: 20px; background-color: #000; top: 0; left: 200px;} .m-fix { width: 200px; }
</style>
</head>
<body>
<h2>BUG复现</h2>
<p>触发条件:IE6下定位的父元素宽度是奇数时</p>
<div class="m-box">
<div class="m-box-inner"></div>
</div> <h2>BUG修复</h2>
<p>解决方案:将定位的父元素宽度改为偶数</p>
<div class="m-fix m-box">
<div class="m-box-inner"></div>
</div>
</body>
</html>
6.【IE CSS Bug系列】IE6浮动3px
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>IE6浮动3px</title>
<style>
html,body {
padding: 0;
margin: 0;
} .m-box {
overflow: hidden;
background-color: #ccc;
}
.m-box .m-box-main { width: 200px; float: left; background-color: red; }
.m-fix .m-box-main { _margin-right: -3px;}
</style>
</head>
<body>
<h2>BUG复现</h2>
<p>触发条件:一个块浮动,另一个不浮动</p>
<div class="m-box">
<div class="m-box-main">浮动3像素bug</div>
<div>浮动3像素bug</div>
</div> <h2>BUG修复</h2>
<p>解决方案:1.给浮动元素设置负margin; 2.给另一个元素也浮动</p>
<div class="m-box m-fix">
<div class="m-box-main">浮动3像素bug</div>
<div>浮动3像素bug</div>
</div>
</body>
</html>
7.【IE CSS Bug系列】IE6浮动元素相邻绝对定位消失
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>IE6浮动元素相邻绝对定位消失</title>
<style>
html,body {
padding: 0;
margin: 0;
} .m-box {
overflow: hidden;
position: relative;
width: 200px;
height: 200px;
background-color: #ccc;
} .m-box .fl {
float: left;
width: 100%;
}
.m-box .pos {
position: absolute;
width: 100px;
height: 100px;
background-color: red;
top: 0;
left: 0;
} .m-fix .pos { _clear: both; }
</style>
</head>
<body>
<h2>BUG复现</h2>
<p>触发条件:浮动元素相邻绝对定位,并且浮动元素有宽 >= 盒子宽-2 </p>
<div class="m-box">
<div class="fl">浮动元素</div>
<div class="pos">定位</div>
</div> <h2>BUG修复</h2>
<p>解决方案:给绝对定位设置clear: both;</p>
<div class="m-box m-fix">
<div class="fl">浮动元素</div>
<div class="pos">定位</div>
</div>
</body>
</html>
8.【IE CSS Bug系列】 IE6浮动双边距
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>IE6浮动双边距</title>
<style>
html,body {
padding: 0;
margin: 0;
}
.g-clear { clear: both; } .m-box {overflow: hidden;}
.m-box p { float: left; background-color: red; margin-left: 100px; } .m-fix p { _display: inline; }
</style>
</head>
<body>
<h2>BUG复现</h2>
<p>触发条件:IE6里块级元素浮动时设置横向margin</p>
<div class="m-box">
<p>双边距</p>
<p>双边距</p>
</div> <h2 class="g-clear">BUG修复</h2>
<p>解决方案:给浮动元素设置display:inline</p>
<div class="m-box m-fix">
<p>双边距</p>
<p>双边距</p>
</div>
</body>
</html>
9.【IE CSS Bug系列】IE6浮动注释
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>IE6浮动注释</title>
<style>
html,body {
padding: 0;
margin: 0;
} .m-box { overflow: hidden; width: 200px; }
.m-box .list { float: left; width: 100px; background-color: #ccc; } .m-fix { width: 203px; }
</style>
</head>
<body>
<h2>BUG复现</h2>
<p>触发条件:盒子里的浮动元素中间有注释,并且盒子的宽度 >= 浮动元素宽+2</p>
<div class="m-box">
<div class="list">浮动+注释</div>
<!-- 注释 -->
<div class="list">浮动+注释</div>
</div> <h2>BUG修复</h2>
<p>解决方案:1.去除浮动元素之间的注释; 2.给盒子的宽的增加2像素以上(不推荐)</p>
<div class="m-box m-fix">
<div class="list">浮动+注释</div>
<!-- 注释 -->
<div class="list">浮动+注释</div>
</div>
</body>
</html>
10.【IE CSS Bug系列】IE6滤镜PNG透明,容器内链接
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>IE6滤镜PNG透明,容器内链接</title>
<style>
html,body {
padding: 0;
margin: 0;
} .m-box {
width: 100px;
height: 100px;
background: url(x.png) no-repeat 0 0; _background: none;
_filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='x.png', sizingMethod='crop');
} .m-fix a {
_position: relative;
}
</style>
</head>
<body>
<h2>BUG复现</h2>
<p>触发条件:IE6滤镜PNG透明</p>
<div class="m-box">
<a href="#">滤镜透明后链接</a>
</div> <h2>BUG修复</h2>
<p>解决方案:给这个链接设置position: relative;</p>
<div class="m-box m-fix">
<a href="#">滤镜透明后链接</a>
</div>
</body>
</html>
11.【IE CSS Bug系列】IE6绝对定位bottom失效
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>IE6绝对定位bottom失效</title>
<style>
html,body {
padding: 0;
margin: 0;
} .m-box { position: relative; }
.m-box .cont { width: 200px; height: 200px; background-color: #ccc; }
.m-box .pos { position: absolute; width: 50px; height: 50px; left: 0; bottom: 0; background-color: red; } .m-fix { width: 200px; }
</style>
</head>
<body>
<h2>BUG复现</h2>
<p>触发条件:绝对定位时,相对定位的父元素没有触发haslayout</p>
<div class="m-box">
<div class="cont"></div>
<div class="pos">bug</div>
</div> <h2>BUG修复</h2>
<p>解决方案:触发haslayout</p>
<div class="m-box m-fix">
<div class="cont"></div>
<div class="pos">fix</div>
</div>
</body>
</html>
12.【IE CSS Bug系列】IE6里定义小高度容器
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>IE6里定义小高度容器</title>
<style>
html,body {
margin: 0;
padding: 0;
} .m-box p { height: 5px; background-color: red; } .m-fix .overflow { overflow: hidden; }
.m-fix .fontSize { font-size: 0; }
.m-fix .lineHeight { line-height: 0; }
.m-fix .empty { line-height: 0 }
</style>
</head>
<body>
<h2>BUG复现</h2>
<p>触发条件:默认</p>
<div class="m-box">
<p></p>
<p>最小高度</p>
<p>最小高度</p>
<p>最小高度</p>
</div> <h2>BUG修复</h2>
<p>解
class="m-box m-fix">
<p class="overflow">最小高度</p>
<p class="fontSize">最小高度</p>
<p class="lineHeight">最小高度</p>
<p class="empty"></p>
</div>
</body>
</html>
13.【IE CSS Bug系列】图片标签焦点问题
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>图片标签焦点问题</title>
<style>
html,body { margin: 0; padding: 0; }
h2 { clear: both; } /* 清浮动,无关的样式 */ .m-box label { float: left; }
.m-fix label {
position: relative;
overflow: hidden;
}
.m-fix label span {
position: absolute;
left: 0;
top: 0;
width: 200px;/* 宽高要盖住图片 */
height: 200px;
background: url(http://www.baidu.com/img/bdlogo.gif) no-repeat -5000px; /* required for IE click bug fix */
}
</style>
</head>
<body>
<h2>BUG复现</h2>
<p>触发条件:label嵌套img焦点触发</p>
<div class="m-box">
<label for="default"><img src="http://www.baidu.com/img/bdlogo.gif" alt="百度一下"/></label>
<input type="checkbox" id="default">
</div> <h2>BUG修复</h2>
<p>解决方案:给label添加span并且定位</p>
<div class="m-box m-fix">
<label for="fix"><span></span><img src="http://www.baidu.com/img/bdlogo.gif" alt="百度一下"/></label>
<input type="checkbox" id="fix">
</div>
</body>
</html>
14.【IE CSS Bug系列】IE8按钮对齐
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>IE8按钮对齐</title>
<style>
html,body {
margin: 0;
padding: 0;
}
button, input{
display: block;
margin-left: auto;
margin-right: auto;
width: auto;
} .m-fix button, .m-fix input{
width: 20em;
}
</style>
</head>
<body>
<h2>BUG复现</h2>
<p>触发条件:button/input[type=submit]/input[type=button]</p>
<div class="m-box">
<button>按钮</button>
<input type="button" value="button"/>
<input type="submit" value="button"/>
</div> <h2>BUG修复</h2>
<p>解决方案:定宽</p>
<div class="m-box m-fix">
<button>按钮</button>
<input type="button" value="button"/>
<input type="submit" value="button"/>
</div>
</body>
</html>
15.【IE CSS Bug系列】IE6&IE7浮动+清浮动内容折断
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>IE6&IE7浮动+清浮动内容折断</title>
<style>
html,body {
margin: 0;
padding: 0;
}
h2 { clear: both; } /* 清浮动,无关的 */ .m-box p {
border: 1px solid red;
clear: left;
float: left;
}
.m-fix p { width: 100%; }
</style>
</head>
<body>
<h2>BUG复现</h2>
<p>触发条件:浮动+清浮动</p>
<div class="m-box">
<p>hi,我是一段文字,一段文字!我是一段文字,一段文字!我是一段文字,一段文字!我是一段文字,一段文字!我是一段文字,一段文字!我是一段文字,一段文字!我是一段文字,一段文字!我是一段文字,一段文字!</p>
<p>hi,我是一段文字,一段文字!我是一段文字,一段文字!我是一段文字,一段文字!我是一段文字,一段文字!我是一段文字,一段文字!我是一段文字,一段文字!我是一段文字,一段文字!我是一段文字,一段文字!</p>
</div> <h2>BUG修复</h2>
<p>解决方案:设置宽度</p>
<div class="m-box m-fix">
<p>hi,我是一段文字,一段文字!我是一段文字,一段文字!我是一段文字,一段文字!我是一段文字,一段文字!我是一段文字,一段文字!我是一段文字,一段文字!我是一段文字,一段文字!我是一段文字,一段文字!</p>
<p>hi,我是一段文字,一段文字!我是一段文字,一段文字!我是一段文字,一段文字!我是一段文字,一段文字!我是一段文字,一段文字!我是一段文字,一段文字!我是一段文字,一段文字!我是一段文字,一段文字!</p>
</div>
</body>
</html>
IE CSS Bug 系列的更多相关文章
- 打败 IE 的葵花宝典:CSS Bug Table
博主说:本博客文章来源包括转载,翻译,原创,且在文章内均有标明.鼓励原创,支持创作共享,请勿用于商业用途,转载请注明文章链接.本文链接:http://www.kein.pw/?p=35 原文发表于:A ...
- ie6,ie7,ie8 css bug兼容解决方法
IE浏览器以不支持大量的css 属性出名,同时也因其支持的css属性中存在大量bug. 这里收集了好多的bug以及其解决的办法,都在这个文章里面记录下来了!希望以后解决类似问题的时候能够快速解决,也希 ...
- ie6,ie7,ie8 css bug兼容解决记录
ie6,ie7,ie8 css bug兼容解决记录 转载自:ie6,ie7,ie8 css bug兼容解决记录 - 前端开发 断断续续的在开发过程中收集了好多的bug以及其解决的办法,都在这个文章里面 ...
- CSS 魔法系列:纯 CSS 绘制各种图形《系列六》
我们的网页因为 CSS 而呈现千变万化的风格.这一看似简单的样式语言在使用中非常灵活,只要你发挥创意就能实现很多比人想象不到的效果.特别是随着 CSS3 的广泛使用,更多新奇的 CSS 作品涌现出来. ...
- CSS 魔法系列:纯 CSS 绘制各种图形《系列五》
我们的网页因为 CSS 而呈现千变万化的风格.这一看似简单的样式语言在使用中非常灵活,只要你发挥创意就能实现很多比人想象不到的效果.特别是随着 CSS3 的广泛使用,更多新奇的 CSS 作品涌现出来. ...
- CSS 魔法系列:纯 CSS 绘制图形(各种形状的钻石)
我们的网页因为 CSS 而呈现千变万化的风格.这一看似简单的样式语言在使用中非常灵活,只要你发挥创意就能实现很多比人想象不到的效果.特别是随着 CSS3 的广泛使用,更多新奇的 CSS 作品涌现出来. ...
- CSS 魔法系列:纯 CSS 绘制图形(心形、六边形等)
<CSS 魔法系列>继续给大家带来 CSS 在网页中以及图形绘制中的使用.这篇文章给大家带来的是纯 CSS 绘制五角星.六角形.五边形.六边形.心形等等. 我们的网页因为 CSS 而呈现千 ...
- CSS 魔法系列:纯 CSS 绘制基本图形(圆、椭圆等)
我们的网页因为 CSS 而呈现千变万化的风格.这一看似简单的样式语言在使用中非常灵活,只要你发挥创意就能实现很多比人想象不到的效果.特别是随着 CSS3 的广泛使用,更多新奇的 CSS 作品涌现出来. ...
- 【转载】IE浏览器常见的9个css Bug以及解决办法
IE浏览器常见的9个css Bug以及解决办法 我们在浏览网页的时候经常看见这样的现象:某个网页在IE6浏览器中打开很正常,但是在IE8里面打开可能完全变形了.或者也有可能出现完全相反的现象.这让We ...
随机推荐
- centos上安装rabbitmq并且python测试
把我的阿里云重置了一下,重新安装rabbitmq,看看会出现什么问题. 首先,把erlang环境安装一下,直接 yum list | grep erlang erlang.x86_64 R16B-03 ...
- Linux方面收藏的一点儿资料
初来乍到,也算是第一次写技术类相关的博客,就分享几篇收藏的Linux相关的资料吧,希望可以给需要的人一点帮助. 1.<高级Bash脚本编程指南>:该网站详细讲解了Bash Shell编程的 ...
- 局域网架个YUM源-HTTP的
在安装CDH时,这是个绕不过去的坎. 参考URL: http://www.21ops.com/linux/26465.html 奇怪的是,我并没执行creatrepo这个,直接将光盘MOUNT来用的. ...
- HADOOP都升级到2.5啦~~~
经过前年的初次接触,现在已大约能理解整个体系啦.MAPREDUCE都改成YARN啦. 不过,还得继续往前走,再能实用... HIVE,HBASE,ZOOKEEPER,, 思路如下: 安装系统,配置网络 ...
- 在O(1) 时间删除链表节点
struct Node { int val; Node * next; }; void deleteNode(Node ** head, Node * target) { assert(head != ...
- 51单片机引脚ALE/PROG/PSEN/EA/Vpp
51单片机的4个控制引脚,其中一个引脚是复位引脚(RST/Vpd),RST是复位引脚,当RST输入端保持2个机器周期以上高电平时,就实现复位. ALE/PROG是地址锁存允许信号输出端,在读写外部存储 ...
- Qt也有垃圾回收(通过QScopedPointer实现),下决心在项目里使用QScopedPointer,省了太多事情了,而且更安全!!
也谈Qt的垃圾回收 前几天在做代码审核的时候,Kai Uwe Broulik建议使用QScopedPointer来替代手工内存管理,使用后发觉确实节约了不少代码量,我的CHERRY可以延长寿命了!但是 ...
- WPF中使用文件浏览对话框的几种方式
原文:WPF中使用文件浏览对话框的几种方式 WPF本身并没有为我们提供文件浏览的控件, 也不能直接使用Forms中的控件,而文件浏览对话框又是我们最常用的控件之一. 下面是我实现的方式 方式1: 使用 ...
- 【转】Android中定时器的3种实现方法
原文网址:http://www.android-study.com/pingtaikaifa/508.html 在Android开发中,定时器一般有以下3种实现方法: 一.采用Handler与线程的s ...
- struct2(二) struct2的hello world 程序
在struct2 的web应用程序中,当你点击一个超链接或者提交一个HTML页面的时候,并不是直接的转向一个另一个的页面,而是转到你提供的一个Java 类.这个过程被称为一个action,一个acti ...