Проблема с IE Quirks Mode - Div с фиксированным ростом высоты - PullRequest
1 голос
/ 24 июля 2010

У меня странная проблема с IE8. Страница DOCTYPE - это QuirksMode, и я НЕ МОГУ изменить ее (хотелось бы, но сейчас нет никакого способа). Ширина взломана, чтобы исправить разницу интерпретации блочного модема между IE и другими браузерами. Это простая горизонтальная панель навигации. У него все время есть граница, и выбранный элемент должен быть немного больше, чтобы «покрыть» внешнюю границу. Работает как шарм в FF, но в IE #container игнорирует свойство высоты и расширяется, чтобы соответствовать дочерним элементам, достигает 34px, и граница не закрывается.

Упрощенный HTML это:

<style>
    #container {
        padding:0px;
        margin:0px;
        height:30px;
        border-bottom:#000 2px solid;
        background-color:#ccc;width:780px
    }
    #list {
        padding:0px;
        margin:0px;
        height:100%;
        float:left;
        background-color:#CCFFFF
        list-style-type:none;
    }
    #list li {
        float:left;
    }
    .selected_item {
        height:30px;
        *height:32px;
        border-bottom:#FFF 2px solid;
        background-color:#FFCCFF
    }
    .nonselected_item {
        height:28px;
    }
</style>
    <div id="container">

            <ul id="list">
                <li class="selected_item">First item</li>
                <li class="nonselected_item">Second item</li>
            </ul>

    </div>

Есть идеи? Заранее спасибо. Андреа.

Ответы [ 4 ]

1 голос
/ 26 июля 2010

Спасибо за ваш ответ Alohci, который добился цели!

MSW, спасибо за ваш ответ, но это приложение используется около 5 тысяч пользователей в день, на 40 продуктивных веб-сайтах, которые работают натот же код, и мы должны загрузить и протестировать около 2 тысяч страниц, чтобы изменить тип документа.И ... мы не часто сталкиваемся с такими проблемами CSS, потому что структура часто не меняется.У нас может быть один или два таких в год, поэтому усилия по изменению доктрины сейчас не оправданы.Мы изменим его в тот день, когда нам нужно будет осуществить изменение, которое затронет все 40 веб-сайтов и не может быть достигнуто иначе.

1 голос
/ 24 июля 2010

Попробуйте добавить положение: абсолют к # списку

0 голосов
/ 24 июля 2010

первая строка, тип не определен, попробуйте

0 голосов
/ 24 июля 2010

С Quirks DOCTYPE вы просите IE притвориться, что это IE6 (более или менее).Если это действительно неизменяемый DOCTYPE, то вам нужно либо написать код для правильной разметки IE6 и , как десятилетие веб-менеджеров, либо найти какой-то способ сказать IE8 никогда не уважать Quirks.

Инженерия - это компромиссы;да, я понимаю, что вы, возможно, не сможете изменить это одно слово на этой критически важной странице и что это будет стоить вам огромных усилий по кодированию в соответствии со стандартами браузеров с 2001 года, но если это ограничения, то так и будет.

...