Как получить & # 8220; положение: исправлено & # 8221; CSS для работы в IE 7+ с переходным типом документа?

StackOverflow https://stackoverflow.com/questions/1628265

Вопрос

Я знаю, что position: fixed; не поддерживался IE до IE 7, и он работает в IE 7, только если у вас есть STRICT DOCTYPE .

У меня такой вопрос: "Как заставить его работать с IE 7 с TRANSITIONAL DOCTYPE ? "

Пожалуйста, не предлагайте менять DOCTYPE , так как это не отвечает на мой вопрос, спасибо.

Это было полезно?

Решение

Вам не нужен строгий DOCTYPE для поддержки fixed . Вам нужен только DOCTYPE, который запускает режим стандартов (или & # 8216; почти стандарты & # 8217 ;). Это может быть переходный тип документа, такой как:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

или XHTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

, если включен системный идентификатор (URI в конце).

Если ваши страницы действительно используют режим Quirks (тьфу!), извините, но вы не можете использовать fixed , и вам придется прибегать к хакерским программам JavaScript (но тогда вам могут понадобиться те для IE6 в любом случае).

Другие советы

Фиксированная позиция не работает для меня даже с типами документов Transitional / Strict Doc. Однако я использую IE9 в режиме совместимости, и предполагается, что для рендеринга используются библиотеки времени выполнения IE8. Чтобы исправить эту проблему, мне пришлось добавить следующий элемент CSS в элемент.

.elementToBeFixed {
    position: fixed;
    top: 0;
    left: 0;
}

Он не работает при отсутствии Top или Left, вам необходимо явно установить их на ноль (или желаемое значение), чтобы он работал во всех версиях IE .... Излишне говорить, что IE отстой.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top