IE7以下存在非float元素和float:right元素时float:right元素下沉

bug问题:

  在IE7以下ul中如果包含其他非li的元素,这些元素就会被他最近的上一个li所包裹。无法正常排列。

1 <style>
2 li{height:24px;line-height:24px;}
3 .title{width:100px}
4 .time{float:right;}
5 </style>
6 <ul>
7 <li><a class="title">这个是标题</a><span class="time">2014</span></li>

修改方法:

  1.span和a标签交换位置。

    优点:简单,方便。

    缺点:语义结构发生改变,不合逻辑。

  2.使用position绝对定位。

    优点:简单,方便,更准确。

    缺点:用多了float,总感觉怪怪的,但其实除了有可能引发z-index兼容性错误,这种方法最好。

  3.所有元素全部浮动。

    优点:只改动css不改动DOM结构。

    缺点:要对父级进行fix修正,不然高度无法判断。

  4.利用hack进行修正对span添加*margin-top:24px。

    优点:只针对IE67,使代码符合思考习惯,我比较喜欢。

    缺点:使用hack肯定不符合W3C。

  5.其他利用js进行修改过。

 

posted @ 2015-02-10 12:29  擎夜  阅读(116)  评论(0)    收藏  举报