2010-04-05 3 views
0

На этой странице http://zenchan.com/program/Перекрытия элементы остановки перекрытия в IE7 на изменении класса

Когда я опрокидывание 2-я правого ящика сверху, вдруг перекрывание (отрицательный запас исчезает). Что происходит, так это то, что добавляется класс «hover» для смещения фонового спрайта.

Два желтых блока отлаживаются: если класс наведения задан заранее, нет проблем. Итак, принципиально CSS не проблема для IE7, но добавление класса.

Любые идеи, что вызывает это. Я пробовал добавлять haslayout к различным элементам, но малоэффективен.

Редактировать: Я нашел решение этого вопроса. Примените hasLayout к окружающему элементу, используя min-height: 10px.

ответ

0

Глядя на разметку, я думаю, вы должны попробовать и добавить div для окружения каждой строки div. Вы перемещаете элементы слева, и у вас нет элемента ниже с ясным: 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 
} 

Im не положительного это исправить вашу проблему, но это начало. Что это будет делать, так это убедиться, что всякий раз, когда что-то меняется, строки не пытаются и нажимают друг на друга.

Кроме того, убедитесь, что размеры на обоих классах одинаковы, что, очевидно, будет иметь эффект.

Надеется, что это помогает,

Метрополиса

EDIT

Хорошо, я думаю, я вижу вашу проблему. Начиная свой CSS имеет это для тех элементов

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

Но, onhover маржинальной-влево уходит и фон-позиция = -390px -341px; Это означает, что ваш CSS должен быть изменен где-то посередине.

+0

Я бы предпочел найти решение, которое не связано с добавлением дополнительного HTML. CSS (ваше редактирование) не является проблемой. CSS .hover не имеет полей слева, но маржа слева от # program-daycamp по-прежнему будет применяться из-за правил специфики. (Я пробовал с избыточной маржей слева в классе .hover, но изменений нет). – Gazzer

+0

«Я бы предпочел найти решение, которое не связано с добавлением дополнительного HTML» Если вы собираетесь использовать плавающие элементы, то это будет лучшей защитой от проблем. Лучше всего иметь элемент с ясным: оба свойства, чтобы все оставалось там, где вы думаете. – Metropolis

+0

(Я нашел решение. См. Выше.) Я считаю, что мне больше не нужно беспокоиться об очищающих элементах. Я просто применяю переполнение: auto к окружающему элементу, и все просто работает. – Gazzer

Смежные вопросы