代码之家  ›  专栏  ›  技术社区  ›  Tgr

浮动+清除元素不影响IE7中的下列浮动元素-是否有解决方法?

  •  1
  • Tgr  · 技术社区  · 15 年前

    我正试图设计一个定义列表,以便 dt 标记开始新行,后面可以跟任意数量的 dd 同一行上的元素。在现代浏览器中,这很简单

    dt {
        float:left;
        clear:left;
    }
    dd {
        float:left;
    }
    

    然而,在IE7中,如果clearing元素有float,则后续的float不受影响。( example )有没有解决这个问题的办法?我四处寻找,但通常建议的解决方案似乎都不适用:

    • 因为这是一个定义列表,所以我不能在 div .
    • 我不想使用不可见的非浮动清算元素-它必须是 日期 尽职调查 ,以及使用定义列表而不是表或 span - br soup要有语义标记,这会被纯粹的表示方式搞砸 日期 / 尽职调查 元素。
    • 据我所见,基于触发的方法 hasLayout (从而触发内联块行为)例如 this 如果每行的元素数不固定,则不工作。(另外,我不想费心去掉空白。)
    • 我找不到 this solution 合作 dl 而不是 ul ;均匀设置 display:list-item 没有帮助。

    有没有其他方法强制IE7模拟标准的浮点行为?

    1 回复  |  直到 9 年前
        1
  •  0
  •   meder omuraliev    15 年前

    尝试使用 inline-block 而不是漂浮物。

    dl { 
        line-height:1.2em; 
        padding-left:1em; 
    } 
    dt { 
        display:block; 
        margin:0 0 -1.2em -1em; 
    } 
    
    dd { 
        display:inline-block; 
        display:inline !ie; 
        margin-left:1em; 
    } 
    

    把这归功于死荫。