`
yl.fighter
  • 浏览: 257820 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[转载]IE6:display:inline-block解决方案

    博客分类:
  • Web
阅读更多
转自: http://hi.baidu.com/tean/blog/item/8631e824d753b41a4c088d83.html

IE6下对display:inline-block;支持的不是很好。网上有资料说:修改inline元素的display属性为inline-block后,所有的浏览器都是支持的。修改block元素的display属性为inline-block后,IE6及以下的老版浏览器都是不支持的。
display: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中块元素呈递为内联对象。

IE6下块元素如何实现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 或float属性等)。代码如下:

div { display:inline-block; _zoom:1;_display:inline;} /*推荐*/
div { display:inline-block; _zoom:1;*display:inline;} /*推荐:IE67*/
分享到:
评论

相关推荐

    CSS属性display:inline-block用法深入理解

    要让IE支持`inline-block`效果,有以下两种常见的解决方案: 1. 使用双`display`属性技巧:先设置`display:inline-block`触发layout,然后立即设置`display:inline`。代码示例如下: ```css div { display: ...

    关于css display: inline block inline-block的区别分析

    - `display: inline-block` 在某些老版本的浏览器,尤其是IE6和IE7中,存在兼容性问题。在Firefox中,可以使用 `-moz-inline-box`,但会有副作用,例如`text-align`的问题,需要使用私有属性 `-moz-box-align` 解决...

    跨浏览器的inline-block声明上承诺了很多提供的却很少

    对于那些不支持inline-block的旧版浏览器,例如Firefox2,解决方案是使用Mozilla特有的"-moz-inline-stack"属性。这个属性在支持它的浏览器中会忽略掉inline-block,而在不支持inline-block的浏览器中(如Firefox2)...

    ChangMM#javascript-html-css-issue#CSS-兼容ie6、7的inline-block1

    其实我们以为应该是这样的:但是ie6,ie7是这样显示的:IE6/IE7下对display:inline-block的支持性不好。解决方案:直接让块元素设置为内

    深入display:inline-block

    `display:inline-block`是CSS布局中的一个重要属性,用于将元素...同时,CSS Flexbox和Grid布局的出现提供了更强大且兼容性更好的布局解决方案,但在某些场景下,`display:inline-block`仍然是一个简单且实用的选择。

    浅谈inline-block及解决空白间距

    需要注意的是,IE6 和 IE7 对 `display: inline-block` 的支持并不完全。虽然它们确实可以识别这个属性,但是表现不完美,特别是在处理空白间距问题上。为了使这些老版本的 IE 浏览器支持 `inline-block`,可以使用...

    inline-block带来的元素间距问题解决

    本文主要关注`inline-block`元素的间距问题及其解决方案,同时也会对比`block`和`inline`的特性。 首先,`display: inline-block` 是一种混合型布局模式,它结合了`inline`元素的并排显示特性与`block`元素的宽高...

    CSS之display引用运用

    虽然`display:inline-block`非常实用,但它在不同浏览器中的表现可能存在差异,尤其是在IE等旧版本浏览器中。例如,在IE6和IE7中,可能会出现布局错乱的问题。 为了解决这些问题,可以采用以下几种方案: - **使用...

    兼容浏览器的css inline-block写法

    对于旧版浏览器,如IE6和IE7,直接使用inline-block可能会遇到显示问题。在这些浏览器中,即使我们给元素设置了display:inline-block属性,元素仍然可能无法正确地以inline-block的方式显示。为了解决这个问题,我们...

    css display inline block 兼容性问题写法

    除了上述兼容性问题的解决方案外,还有一个需要注意的问题是使用display: inline-block时元素之间可能会出现不必要的空白。这是因为在HTML中,两个行内元素之间的空白字符会被浏览器解析成一个空格,而空白空格会被...

    使用font-size:0px 来制作跨浏览器的inline-block css属性

    此时,`inline-block`布局能提供一个更为灵活的解决方案。 `inline-block`属性使得元素既能保持内联元素的特性(即不占据整行,允许其他元素并排显示),又能像块级元素一样设置宽高。然而,不同浏览器对`inline-...

    IE6中a标签同时使用inline-block与text-indent时出现的BUG

    此外,有一种针对IE6/7的特定解决方案是使用CSS hack,即`.element {display:inline-block !important; display:block;}`。由于IE6/7不支持`!important`属性,所以它们会把元素解析为`block`,而在其他支持`!...

    个人文档1

    本文将详细解析inline-block的概念,以及在不同浏览器中的表现和兼容性问题,并探讨相应的解决方案。 1. **inline-block的概念** inline-block值使得元素生成一个行级的块容器,其内容被格式化为一个块元素,而...

    inline-block元素的4px空白间距解决方案

    在CSS布局中,`inline-block`元素是一种常用的布局方式,它可以将元素表现为内联元素的同时,保持块级元素的特性,如设置宽高。然而,使用`inline-block`时会遇到一个问题,即元素之间会自动产生一个大约4像素(在...

    css 行级元素在多浏览器下的宽度问题 与解决方法

    首先,让我们看看在FF3、IE6(使用IE Tester模拟)、IE7和Safari4中,行级元素使用`display: inline-block`的表现。在这些浏览器中,使用`&-n-b-s-p-;`(即非中断空格字符实体)的兼容性最佳。以下是一个示例代码: ...

    详解CSS 去掉inline-block元素间隙的几种方法

    对于早期版本的IE浏览器(尤其是IE7及以下),`display: inline-block`的兼容性存在问题。可以通过以下方式解决: ```css #demo div { display: inline-block; /* 标准浏览器 */ *display: inline; /* IE7及以下 ...

    最全前端面试题-2.2(浏览器兼容问题篇-上百篇题集整理1个月).doc

    - **`display:inline-block`不支持**:IE6-7不支持`display:inline-block`,可使用`zoom:1`和`display:inline`来模拟。 - **图片默认间距**:IE浏览器中图片之间有默认间距,可以设置`img{display:block;}`来消除...

    button按钮在 IE 中两边被拉伸的解决办法

    以下是对这个问题的详细解释和解决方案: ### 问题描述 在IE浏览器中,当`<button>`元素内部包含文字或图像时,可能会由于默认样式和盒模型差异,导致按钮内容在水平方向上被拉伸。这通常是由于IE的盒模型与W3C标准...

    IE6下出现双倍margin的解决方法

    - 将`display`属性设置为`inline`会使元素表现为行内元素,这可以避免IE6对于浮动元素的错误计算。 - 在IE6中,通过将元素设置为行内元素,可以防止双倍margin的出现,从而修复布局问题。 **特殊情况处理:** 有时...

    [网页重构xhtml.css].css.hack.pdf

    这份文档包含了8个在使用CSS进行网页设计时非常实用的解决方案。 **1. 浏览器特定选择器** 在CSS中,针对不同浏览器的特定选择器是解决跨浏览器样式问题的关键。以下是一些常见选择器: - `* html {}`:适用于IE6...

Global site tag (gtag.js) - Google Analytics