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

IE7中的重叠元素在类更改时停止重叠

  •  0
  • Gazzer  · 技术社区  · 14 年前

    在这个页面上 http://zenchan.com/program/

    当我从顶部第二个滚动右框时,重叠(负边距消失)。正在发生的是添加了一个“hover”类来移动背景精灵。

    这两个黄色框正在调试:如果悬停类提前放置,则没有问题。所以基本上css对ie7来说不是问题,但是添加类是问题。

    有什么原因吗?我试过在各种元素中添加haslayout,但效果甚微。

    编辑 :我找到了解决办法。使用最小高度:10px将haslayout应用于周围的元素。

    1 回复  |  直到 14 年前
        1
  •  0
  •   Metropolis    14 年前

    看一下标记,我认为您应该尝试添加一个div来包围每一行div。您正在将元素浮动到左侧,并且下面没有任何带有clear:both;值集的元素。例子:

    <div id="row1" class="rowWrapper">
        <div id="program-dayoutdoor" class="program-wrapper">
            CONTENT
        </div>
        <div id="program-daycamp" class="program-wrapper">
            CONTENT
        </div>
    </div>
    

    然后在你的css中你需要一个如下的样式

    .rowWrapper {
        clear: both;
        height: WHATEVER_HEIGHT_YOU_NEED_PER_A_ROW
    }
    

    我不确定这会解决你的问题,但这是一个开始。这样做的目的是确保每当事情发生变化时,行不会试图将自己推到彼此之上。

    另外,确保两个类上的大小相同,这显然会有影响。

    希望能帮上忙,

    大都市

    编辑

    好吧,我想我明白你的问题了。开始你的css有这些元素

    body.page-slug-program div#program-daycamp {
        background-position:0 -141px;
        margin-left:-32px;
    }
    

    但是,悬停时左边的边距消失,背景位置=-390px-341px; 这意味着你的css必须在两者之间的某个地方被改变。