`
fuhao_987
  • 浏览: 64028 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

[转]ie6下CSS存在的BUG

阅读更多
A 双倍MARGIN
設置float的位于行首的元素[如div, ul中的li等],使用margin后,横向margin值会加倍
div {
float:left;
margin-left:10px;
display:inline; /*解决方法*/
width:420px;
height:150px;
border:1px solid red
}

浮动元素上的{display: inline;}会被忽略,事实上所有的浏览器没有呈现任何改变,包括IE。但是,它不知何故让IE停止将浮动元素的边界翻倍。因而,这个修复办法可以被 直接应用,而没有任何繁琐的隐藏方法。如果将来的一款浏览器决定对这个修复办法抱恙,只要把这个修复装入IE独用的Tan Hack里

BUG重点
这个Bug仅当浮动边界[margin]和浮动元素[float]的方向相同时出现在浮动元素和容器盒的内边缘之间,在这之后的任意有着相似边界的浮动元素不会呈现双倍边界。只有特定的浮动行的第一个浮动元素会遭遇这个Bug。像居左的情况一样,双倍边界同样神秘地显示在居右的相同方式

B. ul中li垂直间隙BUG
1. li中是图片:
ul li img{vertical-align:bottom;} /*同样适用于ff*/
2.li中是文本内容
参考 IE6 3px BUG

C. display:inline-block;
用于让<a> block后,不使用float属性就显示在一行上

inline-block的元素特点:

将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内,允许空格。(准确地说,应用此特性的元素呈现为内联对象,周围元素保持在同一行,但可以设置宽度和高度地块元素的属性)

并不是所有浏览器都支持此属性,目前支持的浏览器有:Opera、Safari在IE中对内联元素使用display:inline-block,IE是不识别的,但使用display:inline-block在IE下会触发layout, 从而使内联元素拥有了display:inline-block属性的表症。从上面的这个分析,也不难理解为什么IE下,对块元素设置 display:inline-block属性无法实现inline-block的效果。这时块元素仅仅是被display:inline-block触 发了layout,而它本就是行布局,所以触发后,块元素依然还是行布局,而不会如Opera中块元素呈递为内联对象。

IE下块元素如何实现display:inline-block的效果?

有两种方法:
1、 先使用display:inline-block属性触发块元素,然后再定义display:inline,让块元素呈递为内联对象(两个display 要先后放在两个CSS声明中才有效果,这是IE的一个经典bug,如果先定义了display:inline-block,然后再将display设回 inline或block,layout不会消失)。代码如下(...为省略的其他属性内容):

div {display:inline-block;...}
div {display:inline;}


2、直接让块元素设置为内联对象呈递(设置属性display:inline),然后触发块元素的layout(如:zoom:1等)。代码如下:

div {display:inline; zoom:1;display:inline-block;...} /*推荐*/

D. IE6 3px BUG
当浮动元素与 定义宽度的非浮动元素 相邻时,这个3像素的Bug就会出现,它会偏移3像素。
同样适用于ul li 间的间隙问题
<style type="text/css">
*{margin:; padding:0;}
#t1{ background:red; width:400px; height:100px; margin:;}
.t2{ background:blue; width:200px; height:50px; float:left;}
.t3{ background:yellow;  width:100px; height:50px;}
</style>
<div id="t1">
<div class="t2">此处显示  id "t2" 的内容</div>
<div class="t3">a</div>
</div>
分享到:
评论

相关推荐

    解决ie9、ie10本地css加载不上的解决方法实例

    8. **调试工具**:利用IE9和IE10内置的开发者工具(按下F12键打开),可以查看CSS的加载状态,帮助定位问题。 通过以上方法,你应该能解决大部分IE9和IE10的CSS加载问题。当然,考虑到IE浏览器市场份额的持续下降,...

    让IE中支持css3.0效果

    但凡是前端工程师,都知道IE6,IE7,IE8不支持、或者不完全支持CSS3的属性。 CSS3 有很多很强大、绚丽的效果,比如,圆角,阴影,渐变透明,渐变背景,等等。 因为IE6时代,没有什么标准,而因为各种原因,IE6用户...

    最常见的9种IE_css_bug及fix

    这样可以确保元素即使在IE6下也能实现正确的居中布局。 ```css #container { text-align: center; } #element { margin: 30px auto; text-align: left; } ``` #### 2. 楼梯式效果 使用列表(`&lt;ul&gt;`)创建导航...

    IE6, IE7, IE8 CSS 兼容速查表

    相对定位在IE6下也可能需要特别处理。 8. **边距重叠问题**:当浮动元素的子元素有外边距时,IE6会出现边距重叠现象,可以使用`display:inline-block`或`float:left`来避免。 9. **CSS3属性兼容**:IE8及以下版本...

    ie6BUG解决方案

    - **优雅降级**:如果某些效果在IE6下无法完美实现,可以考虑提供一个替代方案,比如使用非透明的背景色或图片,以确保基本功能不受影响。 - **用户教育**:鼓励用户升级到较新版本的浏览器,因为新版本通常有更完善...

    css常见的bug(ie)

    以下是一些针对IE浏览器的CSS常见bug及解决策略: 1. **浮动元素的双倍margin问题**: 在IE6中,如果一个浮动元素设置了margin属性,可能会导致实际的外边距比预期的要宽一倍。为了解决这个问题,可以将浮动元素的...

    DIV+CSS相对IE6、IE7和IE8的兼容问题

    标题和描述均提到了“DIV+CSS相对IE6、IE7和IE8的兼容问题”,这揭示了在Web开发中,尤其是针对老旧浏览器如IE6、IE7和IE8进行CSS布局时,开发者可能遇到的一系列挑战。这些浏览器在解析CSS规则时存在独特的行为,...

    ie6支持css3属性js插件包(不再为兼容性头疼)

    如png透明问题在IE5、IE6下无法显示出其效果,我们可能会使用CSS hack或者引入外部JavaScript来实现。譬如前面我提到过用pngfix的那个方法就是调用外部JavaScript来解决在IE5、IE6下png透明问题。当然还有更多的方法...

    IE5,IE6,IE7,IE8的css兼容性列表

    接着是IE6,它在2001年发布,虽然比IE5有所改进,但在CSS支持上仍然存在许多问题。IE6对层叠规则的理解有限,导致样式优先级处理不准确。此外,它对浮动元素的处理有缺陷,常常会导致“浮动元素塌陷”问题。另外,IE...

    CSS之IE BUG分析与解决

    - 在某些情况下,IE6可能会出现lay-out错误,表现为元素尺寸计算不准确。可以通过设置`display:inline-block;`来修复。 9. **断头台效应(Tombstoning)** - 当浮动元素的父级没有设定高度时,IE6可能无法正确...

    css样式BUG大全

    然而,在不同浏览器环境下,CSS的表现可能会出现差异,甚至引发一些难以预料的BUG。本文将针对常见的CSS样式BUG进行详细解析,并提出相应的解决方案。 #### 二、垂直居中问题 **问题描述:** 在某些情况下,尝试使...

    ie6下定位bug解决

    另外,IE6中还存在一个`position: absolute`元素消失的BUG。当绝对定位的元素后面有浮动元素或负边距时,该元素可能会消失。解决方法是在消失的`div`后添加一个空的`div`,并使用条件注释来针对IE6: ```html ...

    ie6中页面的bug

    3. **浮动元素的display属性**:IE6存在一个著名的双倍外边距bug,当设置浮动元素的margin时,可能会导致外边距翻倍。解决方法是在浮动元素上添加`display: inline`,这样可以消除多余的外边距。 4. **启用...

    让ie兼容css选择器

    ie7.js是一个由Dean Edwards开发的JavaScript库,它主要目的是让IE6和IE7支持一些CSS2.1及部分CSS3选择器,如类选择器(.class)、伪类(:hover、:focus等)和属性选择器([attr=value])。ie7.js通过动态创建DOM...

    IEbug、IE6页面问题

    IEbug、IE6页面问题、IE6样式问题

    常见 CSS BUG 的处理

    **IE5/6 Doubled Float-Margin Bug**:在 IE5 和 IE6 中,当一个浮动元素紧挨着另一个设置了外边距的元素时,可能会出现外边距加倍的问题。 **解决方法**: - 使用 `display: inline` 来让元素表现得像内联元素一样...

    CSS HACK 兼容列表 Firefox,IE5,IE5.5,IE6,IE7,IE8.rar

    2. **选择器Hack**:利用某些浏览器特有的选择器进行Hack,例如`_property`在IE6和IE7下生效,而`*property`则在IE6下生效。 3. **CSS注释Hack**:在CSS注释中包含特定字符序列,让某些浏览器忽略后面的规则。例如...

    ie6bug问题解决

    在IT行业中,尤其是在Web开发领域,IE6(Internet Explorer 6)因其众多独特的bug和兼容性问题而闻名。这个压缩包文件"ie6bug"显然专注于解决与IE6相关的技术挑战。下面,我们将深入探讨IE6中的常见问题以及解决策略...

    css_bug与解决方法

    解决该bug的方法包括使用JavaScript或CSS hack,如`*html`选择器来针对性地修改样式,确保在IE6下元素的正确显示。 总结,面对CSS bug,开发者需要具备一定的调试技巧和跨浏览器兼容性知识。通过理解CSS的工作原理...

    IE6浏览器完美兼容PNG图片的BUG(包括背景)

    在互联网发展的早期,Internet Explorer 6 (简称IE6) 是占据主导地位的浏览器,然而它在处理PNG(Portable Network Graphics)图像格式时存在一些著名的兼容性问题,这给网页设计和开发带来了不少困扰。PNG是一种...

Global site tag (gtag.js) - Google Analytics