【IE6的疯狂之十三】使用浮动去掉元素中的多余空白间距

愚人码头 撰写  

IE6的某些元素在表现上有多余的一些空白间隙,或者更形象的说是“外边距(margin)”,要么是margin-top,要么是margin-bottom,当然还有margin-left,margin-right。这个在表单元素中特别常见。即使我们的reset css已经将这些元素的margin值设为0。

可以看一个实例:比如们想模拟一个双边框的文本框,如图:

看html代码:


<span><input type="text" name="textfield2" id="textfield2" /></span>

css代码:


span{border:1px solid #FCCC83; display:inline-block; overflow:hidden; zoom:1}

.url-input{ width:200px; height:18px; background-color:#FFFFFF;   padding:2px 0 0 3px; border:1px solid #FA9806;}

其他浏览器下正常,但是ie6下(ie7下未测试),如图显示:

span和input之间明显有个间距。这个时候直接无语了。即使我们将input设为margin:0; padding:0;

百般无奈下只能使input浮动,因为以前也碰到过类似的问题——【IE6的疯狂之六】li在IE中底部3像素的BUG(增加浮动解决问题):http://www.css88.com/archives/421

看html代码:


<div>输入视频、网页、音乐的地址: <span><input type="text" name="textfield2" id="textfield2" /></span> <input type="submit" name="button" id=""  value="分享" /> </div>

css代码:


*{ margin:0; padding:0;  font-size:12px}
.share-submit{margin:5px 0 20px; background-color:#F9FBFC; border:1px solid #D1D6E2; padding:8px; overflow:hidden; zoom:1; width:550px; margin:20px auto }
.share-submit .url-input{width:200px;height:18px;background-color:#FFFFFF;   padding:2px 0 0 3px; float:left;border:1px solid #FA9806}
.share-submit span,.share-submit input{ vertical-align:middle}
.share-submit span{border:1px solid #FCCC83; display:inline-block; overflow:hidden; zoom:1}

查看demo:http://www.css88.com/demo/two-border/two-border.html

该问题我昨天也拿到css森林讨论,期待有更好的解决方法,开始没有找到

经过次测试,这个方法屡试不爽,虽然不知道原因但是也算是一个解决方案了。欢迎留言说出您的解决方法,欢迎拍砖!,如果您知道原因欢迎留言告知,感激不尽!

更多相关链接:


相关日志:

刚刚被浏览过的文章:


5 条评论

  1. yanzi
    发表了 2010年01月4日 在 11:20 上午 | 永久链接

    form{margin-top:50px;}
    p{border:1px solid #f1ce8e; width:150px;}
    .text{border:1px solid #fc9908; width:148px; height:20px; line-height:20px; *margin:-1px 0;}
    样式还需要重置,就实现你要的效果了,不知道是否符合你的要求。

  2. yanzi
    发表了 2010年01月4日 在 11:21 上午 | 永久链接

    这是html

  3. 心灵·
    发表了 2010年01月7日 在 2:17 下午 | 永久链接

    这样的问题在实际中经常会遇到,不知为了实现而耗费很大的力气值不值得,不过既然能解决还是学习了

  4. 2688
    发表了 2010年01月12日 在 8:36 上午 | 永久链接

    我基本是让两者都浮动解决问题

  5. 发表了 2010年03月25日 在 5:44 下午 | 永久链接

    刚才试了下,发现问题出在display:inline-block和zoom:1上面,在IE6写这两个就会出现那个问题。所以改成display:inline-block; _display:inline;就可以了

发表评论

Your email is never shared. 标记为 * 的为必填项目

*
*

评论时,昵称或个人网站填的是商业网站的,一概标记为垃圾评论不予显示,并设置相关网站为过滤关键字,提交到google、百度垃圾网站数据库