IE7: элемент, отображаемый даже при отображении: нет - PullRequest
4 голосов
/ 26 мая 2010

Я пытаюсь скрыть «обязательное» сообщение при первой показе страницы. На FF и IE8 это работает, но по какой-то причине сообщение отображается на IE7.

Вот HTML:

    <div id="passwordDivRequired" class="requiredMsg">
        <img src="images/required.png" />
                            Required                        
    </div>

А вот и CSS:

.requiredMsg img{
    width: 1.5em;
    height: 1.5em;
    position: relative;
    bottom: -.4em;
}

div .requiredMsg {
    color: #BF5754;
    display: none;
}

Ответы [ 2 ]

9 голосов
/ 26 мая 2010
div .requiredMsg

Выбирает любой элемент с атрибутом класса, который содержит слово requiredMsg, которое является потомком элемента div.

- http://penguin.theopalgroup.com/cgi-bin/css3explainer/selectoracle.py

Получитьизбавиться от потомка селектора (пробел).

5 голосов
/ 02 марта 2011

У Дэвида Дорварда, несомненно, был правильный ответ на эту конкретную проблему, но для полноты записи есть две (как минимум) другие IE <= 7 особых причин для отображения элемента, когда он скрыт в других браузерах: </p>

1) Один из них отлично описан здесь: http://www.positioniseverything.net/explorer/ienondisappearcontentbugPIE/index.htm Чтобы дать основную суть, это может произойти, если ваш элемент скрыт после загрузки страницы, в контейнере, который динамически скрыт, а затем показан. На этой странице есть больше информации, отличная демонстрация и некоторые исправления.

2) Еще один более редкий, но, вероятно, связанный сбой IE7: элемент «Display: Block» (установленный CSS) отображается, несмотря на то, что он находится внутри элемента «Display: None» (установленный javascript) «div», тогда как другие дочерние элементы без Установленное «Отображение» не отображается должным образом. Контейнером в этом случае был div «Position: fixed» (также установленный JS), а потомком - якорь («a»). Для меня единственное, что исправило это, это реструктуризация логики моего приложения так, чтобы Javascript применял «Display: None» в CSS до загрузки страницы, а не после. Это работало даже тогда, когда дисплей был переключен с JavaScript позже.

В общем, IE <= 7, похоже, имеет запутанные проблемы с наследованием отображения, когда содержимое скрыто после загрузки страницы. </p>

(не стесняйтесь редактировать)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...