Глюки и хаки: ie7

28 февраля 2010. Рубрики: Рабочие заметки; автор — Юлия Панина aka Княгиня.

IE7 «порадовал» меня необъяснимым глюком. Без видимой причины вдруг пункты в нумерованном списке (ol) стали нумероваться одним и тем же первым номером. Видимой причины такого поведения не было, пришлось искать методом исключения. Причина нашлась, и выглядела она так:

li{
  min-height:1.2em;
}

Это правило потребовалось для Фаерфокса, который «схлопывает» пустые строки в списке (только номера друг на друга наезжают). Предполагалось, что администратор сайта имеет право делать в списке пустые пункты, значит, должны быть пустые строки. С номерами. Пустые строки появились, а седьмой ИЕ перестал нумеровать список. Пришлось написать хак специально для него, родимого:

li{
  min-height:auto;
}

Надо сказать, что шестой и восьмой ИЕ глюк своего собрата не разделяют. А я так и не поняла, какую связь он нашёл между высотой строки и её номером в списке.

Отзывы (4) на «Глюки и хаки: ie7»
  1. Николай (2 комментария)

    Проблема в том что каждый layout имеет свой счетчик. У меня сейчас это был zoom:1; У вас min-height

    Ответить на этот комментарий
    • Княгиня (652 комментария)

      Ваш ответ интригующе не закончен. :) Каким образом min-height связана со счётчиком?

      Ответить на этот комментарий
      • Николай (2 комментария)

        В IE (во всяком случае в старых) есть мифическое невидимое свойство у элементов hasLayout. Включается оно min-height (и подобными) или overflow: hidden или zoom:1 и еще какими-то свойствами. Вообщем это мифическое hasLayout порой помогает устранять проблемы в IE если элемент неправильно выглядит — не так как во всех браузерах (тут как повезет), или например если включить hasLayout к display:inline, то объект станет inline-block (ибо просто inline-block нету такого значения у display).
        Итак в вашем случае, вы включали min-height (что включало hasLayout), а в моем zoom:1. Я применял это свойство для каждого , а это через какую то ж… в IE создает индивидуальный счетчик для каждого элемента))) В итоге везде 1-1-1-1. Вроде так и оказалось :)

        Ответить на этот комментарий
        • Княгиня (652 комментария)

          О, спасибо. Очень интересно. Я про hasLayout слышала, но внятного описания в стандартах не нашла и по сию пору не считала нужным знакомиться ближе. Правда, в моём случае у списка была нумерация вроде VII-VII-VII-VII — это дополнительно сбило с толку и заставило проверять варианты без римских цифр и с единицы. Ну, и понятно, что шестой ИЕ не понимает min-height, потому и не сбивал нумерацию. Видимо, у восьмого этой напасти уже нет.

          Ответить на этот комментарий

Есть что сказать? Не молчим!

Используйте теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" code=""> <ul> <li> <ol> .

Комментарии короче 200 символов публикуются без активной ссылки. Пробелы не учитываются.

Ссылки с комментариев dofollow. Ознакомьтесь, пожалуйста, с правилами dofollow-комментирования. Кто не читает, тот сам себе враг.