Internet Explorer 8 ошибка с отображением: таблица

У меня самая странная ошибка в истории ... Я экспериментирую с display: table, и мое подтверждение концепции работает с первой попытки после открытия нового процесса, но любая последующая перезагрузка страницы нарушает дизайн. Вот простая HTML-страница:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Untitled Page</title>
    <style>
        .container {
            display: table;
        }

        .row {
            display: table-row;
        }

        .cell {
            display: table-cell;
            width: 100px;
            height: 100px;
            border: 1px solid blue;
            padding: 1em;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="row">
            <div class="cell">CELL A</div>
            <div class="cell">CELL B</div>
            <div class="cell">CELL C</div>
        </div>
    </div>
</body>
</html>

И вот ожидаемый результат, это то, что я получаю после первой загрузки.

Вот что я получаю после перезагрузки страницы с помощью F5:

Это безумие!!!

Может кто-нибудь, пожалуйста, попробуйте и дайте мне знать, как это получается для них? Спасибо. Надеюсь, я не покончу с собой, когда прочитаю решение :-)

 Brandon21 сент. 2010 г., 23:40
У меня отлично работает на Vista.
 riwalk21 сент. 2010 г., 23:51
@ md1337 Неважно, если это то, что вы спрашиваете. Вы используете склонный к ошибкам CSS и жалуетесь, что получаете ошибку. Только не используйте склонный к ошибкам CSS во-первых.
 John Saunders21 сент. 2010 г., 23:40
@ md1337: учтите, что IE8 давно отсутствует. Почему вы первый, кто увидел эту ошибку?
 NoChance06 мар. 2013 г., 07:55
@ md1337, я получаю то же самое в режиме конструктора даже после использования «<meta http-эквивалент ....». Не могли бы вы сообщить мне, как вы это решили? Благодарю.
 Bob Kaufman21 сент. 2010 г., 23:40
У меня отлично работает. (WindowsXP, 8.0.6001.18702)
 taylorjes21 сент. 2010 г., 23:42
Проверьте режим совместимости. IE8 должен отобразить display: table. Может быть, вы должны просто использовать стол?
 riwalk21 сент. 2010 г., 23:41
Я бы настоятельно не рекомендовал CSS-свойство display: (table / table-row / table-cell). Это не очень хорошо поддерживается и обязательно имеет причуды. Честно говоря, если вы отображаете табличные данные,затем используйте таблицу, Таблицы являются только злом, когда используются длярасположение.
 riwalk21 сент. 2010 г., 23:43
Ох и не смог воспроизвести (xkcd.com/583)

Ответы на вопрос(2)

когда браузер находится в режиме совместимости. (как предложено Тейлорджесом)

Когда страница отображается в обычном режиме, ячейки расположены горизонтально. При отображении в режиме совместимости ячейки расположены вертикально.

Как я уже сказал в своем комментарии, я бы настоятельно не рекомендовал CSS-свойство display: (table / table-row / table-cell). Это не очень хорошо поддерживается и обязательно имеет причуды.

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

 md133722 сент. 2010 г., 00:27
@bobince: Отличный комментарий! Вы спасли день.
 riwalk22 сент. 2010 г., 00:13
@ Md1337. Да, и прежде чем вы подумали иначе, отрицательный голос был не от меня. Это законный вопрос, даже если ответ не тот, который вы хотели;)
 riwalk22 сент. 2010 г., 00:12
@ md1337 - Нет. Вы пишете свой код для совместимости с несколькими браузерами (поэтому мои замечания не рекомендуют использовать эти свойства CSS).
 bobince22 сент. 2010 г., 00:19
alert(document.documentMode) скажу тебе8 или же7 (или же5 для причудливого режима). использование<meta http-equiv="X-UA-Compatible" content="IE=edge"/> заставить IE использовать «лучший» режим стандартов, который у него есть. В противном случае вы можете стать жертвой режима совместимости по запросу, по умолчанию или по случайному нажатию пользователем, или если Microsoft внесет вас в список совместимости.
Решение Вопроса

что, как полагают некоторые, режим совместимости IE был как-то запущен.

Я узнал, что это потому, что я запускаю страницу в интрасети, и по умолчанию режим совместимости включен для веб-сайтов интрасети.

Это можно отключить, перейдя в Инструменты> Параметры просмотра в режиме совместимости и сняв флажок Отображать сайты интрасети в окне просмотра в режиме совместимости. Конечно, это не то, что вы обязательно хотите попросить всех своих пользователей сделать, поэтому мне было предложено добавить

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

в шапке, которая прекрасно работает.

Больше информации об этом:http://msdn.microsoft.com/en-us/library/cc288325%28VS.85%29.aspx

 REDEVI_20 июл. 2017 г., 14:39
спасибо .. это очень помогло

Ваш ответ на вопрос