IE6和IE7中行内元素后的浮动元素被折行的问题解决

所属分类: 网页制作 / CSS 阅读数: 857
收藏 0 赞 0 分享

一、实例

XML/HTML Code复制内容到剪贴板
  1. <ul class="list">  
  2.  <li><a href="#" title="">新闻一Benjamin</a><span>2014-05-06</span></li>  
  3.  <li><a href="#" title="">新闻一Benjamin</a><span>2014-05-06</span></li>  
  4.  <li><a href="#" title="">新闻一Benjamin</a><span>2014-05-06</span></li>  
  5.  <li><a href="#" title="">新闻一Benjamin</a><span>2014-05-06</span></li>  
  6. </ul>  
CSS Code复制内容到剪贴板
  1. <style type="text/css">   
  2.  body,ul{padding:0;margin:0;}   
  3.  ul{list-style-typenone;border:1px solid #ccc;}   
  4.  li{padding-left:0;}   
  5.  .list{width:300px;margin:100px auto;}   
  6.  .list li{height:24px;line-height24px;border-bottom1px solid #ccc;margin-bottom:-1px;padding-left10px;}   
  7.  .list li span{float:rightright;margin-right:10px;}   
  8.  .list li .float_a{float:left;}   
  9.  .fix {*zoom:1;}   
  10.  .fix:after {displayblockcontent".";visibilityhidden;clearboth;height: 0;overflowhidden;}   
  11. </style>  

二、各浏览器效果图
2016627120709205.gif (310×540)

三、原因分析
1.标准参考:
W3C CSS2.1规范文档里对于浮动元素与非浮动行内元素相邻时的情况有如下解释。以下是关键段落:
A floated box is shifted to the left or right until its outer edge touches the containing block edge or the outer edge of another float. If there’s a line box, the top of the floated box is aligned with the top of the current line box.
由上面的描述可以得到以下结论:如果一个元素浮动前是一个行内元素,则该元素浮动后,顶部应与其之前所在的行框顶部对齐。
2.问题描述:
IE6 IE7 IE8(Quick)下,若浮动元素之前存在兄弟行内非浮动元素,IE 会将浮动元素所在的“当前行”认为是其前边的兄弟行内元素所产生的匿名框的底边,导致该浮动元素折行。

四、解决方案
1.全浮动

CSS Code复制内容到剪贴板
  1. <ul class="list">   
  2.  <li class="fix"><a class="float_a" href="#" title="">新闻一Benjamin</a> <span>2014-05-06</span></li>   
  3.  <li class="fix"><a class="float_a" href="#" title="">新闻一Benjamin</a> <span>2014-05-06</span></li>   
  4.  <li class="fix"><a class="float_a" href="#" title="">新闻一Benjamin</a> <span>2014-05-06</span></li>   
  5.  <li class="fix"><a class="float_a" href="#" title="">新闻一Benjamin</a> <span>2014-05-06</span></li>   
  6. </ul>  

2.放置浮动元素在前

CSS Code复制内容到剪贴板
  1. <ul class="list">   
  2.  <li><span>2014-05-06</span><a href="#" title="">新闻一Benjamin</a> </li>   
  3.  <li><span>2014-05-06</span><a href="#" title="">新闻一Benjamin</a> </li>   
  4.  <li><span>2014-05-06</span><a href="#" title="">新闻一Benjamin</a> </li>   
  5.  <li><span>2014-05-06</span><a href="#" title="">新闻一Benjamin</a> </li>   
  6. </ul>  

3.定位position
4.IE Hack+margin负值

更多精彩内容其他人还在看

css实现的让图片垂直居中的方法

图片的宽度和高度是未知的,没有一个固定的尺寸,在这个前提下要使图片在一个固定了宽度和高度的容器中垂直居中,想想感觉还是挺麻烦的,由于最近的项目可能会用到这个方案,所以把一些常用的方法都收集整理了一下。
收藏 0 赞 0 分享

3个比较有用的网页制作技巧

我们在进行DivCSS布局的时候,非常关注CSS技巧的学习,今天向大家推荐3个所谓的 “顶级”CSS技巧!虽然没有什么新意,但对新手而言却非常重要!
收藏 0 赞 0 分享

让你写出更轻巧、更快并且更不会让你头疼的CSS的方法

为什么我们的CSS变得一团糟——我们真的很容易陷入这样的困惑中。有时这是一开始就马虎编程的结果,有时是由于后期多重的附加代码(hacks)和修改造成的。
收藏 0 赞 0 分享

利用CSS3的checked伪类实现OL的隐藏显示的方法

随着CSS3的发布,国外研究正如火如荼,但在国内还有很多人抱着IE不支持CSS3的想法,始终无动于衷不肯去学习。
收藏 0 赞 0 分享

CSS多浏览器兼容性(IE和Firefox)技巧大全推荐

CSS对浏览器的兼容性有时让人很头疼,或许当你了解当中的技巧跟原理,就会觉得也不是难事,从网上收集了IE7,6与Fireofx的兼容性处理技巧并整理了一下。
收藏 0 赞 0 分享

固定位置显示弹出层(兼容IE6,IE8,FF)

兼容IE6,IE8,FF弹出层固定位置显示,主要是通过css的控制
收藏 0 赞 0 分享

div完美自适应动态上下左右居中

div完美自适应动态上下左右居中,多用于信息提示框效果。
收藏 0 赞 0 分享

display:inline的用法

和 display:inline 对应的是 display:block,block 会让应用了该 CSS 属性的 HTML 标记变成块级别元素,例如 SPAN 是行内显示的,但是你加了 display:block 属性就不一样了
收藏 0 赞 0 分享

css样式实现整个页面背景使用一张图片

最近一直被css背景困扰,因为是仿站,别人网站背景图片无论怎样另存,都是相同文件名,打开一看,整个网站的各个角落背景图片都在一个文件中分布,于是上网搜集资料,发现使用这种方法的网站很多,源自于雅虎最早。
收藏 0 赞 0 分享

关于CSS样式表文件组织形式的整理

以下引用网络上的一篇文章,不知道作者是谁了,总体上概括的不错,但是在实际应用当中还是要根据项目情况来具体实施比较好。
收藏 0 赞 0 分享
查看更多