Почему IE9 отображает мои элементы уровня блока HTML5 как встроенные? - PullRequest
4 голосов
/ 22 сентября 2010

Разве HTML5 не должен работать в IE9? Это не работает, как ожидалось для меня.

Вот мой код HTML5:

<!DOCTYPE html>
<html>
<head><title>

    Dripel - Welcome

</title>
    <!--[if lt IE 9]> 
        <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> 
    <![endif]-->
</head>
<body>
    <header>Welcome to Dripel</header>
    <section id="main">

        I am under development. Please check back later.

    </section>
    <footer>
    </footer>
</body>
</html>

Вы можете просмотреть его на http://www.dripel.com/.

В IE 9 элементы <header> и <section> отображаются как встроенные. Обратите внимание, что в настоящее время я не использую CSS.

Есть идеи, что происходит?

Ответы [ 3 ]

1 голос
/ 22 сентября 2010

Согласно Dive into HTML5, финальная версия Internet Explorer 9 не будет иметь этой проблемы .

Так что я считаю, что вы видите это, потому что IE9 все еще находится в бета-версии. Вы правы, вы не должны видеть это, когда оно будет выпущено.

Вероятно, в любом случае стоит включить явный display: block для элементов HTML5. Вы (обычно) никогда не знаете, когда кто-то будет просматривать ваш код в браузере, предшествующем HTML5.

1 голос
/ 22 сентября 2010

Это верно и для других браузеров, не только для IE.Такое же поведение можно наблюдать и в Firefox 3.6.

Поскольку HTML5 является только рабочим черновиком, производители браузеров еще не создали таблицу стилей по умолчанию для этих элементов, поэтому по умолчанию элементы отображаются встроенными.

Используйте таблицу стилей сброса, которая дает эти элементы display: block, если вы хотите их использовать, например:

article, aside, footer, header, hgroup, nav, section {
    display: block;
}

Скопировано из пользовательского агента Chrome CSS :)


Если вам нужна дополнительная информация, тогда читайте примечания к бета-версии в HTML5 .Нигде явно не говорится, что IE9 «поддерживает» эти элементы HTML5.Ваша концепция поддержки здесь также плохо определена - что вы подразумеваете под поддержкой?Таблица стилей UA, подобная приведенной выше?Поддержка общих неопределенных элементов?(Функция, которая есть в IE9, поэтому вам не нужен маленький скрипт для создания элементов перед их использованием.)

Спецификации HTML5 говорят только о семантике каждого из этих элементов.элементы, и ничего о том, как браузеры должны отображать их.Так вы ожидаете, что браузер, который «поддерживает» HTML5?

0 голосов
/ 23 сентября 2010

IE 9 поддерживает некоторые HTML5.Как и все остальные браузеры.HTML5 еще не закончен, а IE 9 еще не закончен, и ни один браузер не поддерживает весь HTML5.Например, ни один из известных мне браузеров не поддерживает <style scoped> или <iframe seamless>.

Я не ожидал бы, что какой-либо браузер будет поддерживать все HTML5 в одном выпуске.HTML5 имеет много новой функциональности, и он все еще находится в состоянии изменения.Браузеры реализуют функции по одному, иногда с префиксами, чтобы избежать несовместимости позже, иногда в бета-версиях или версиях для разработки, чтобы можно было протестировать дизайн перед более широким выпуском.Невозможно написать идеальную спецификацию за один раз, а затем заставить всех реализовать ее за один раз;вместо этого функции реализованы экспериментально, спецификация написана вокруг них, все исправлено, спецификация обновлена ​​и т. д., пока все не будут довольны тем, что все это довольно хорошо и реализовано совместимыми способами в разных браузерах.Пройдет еще много времени, прежде чем все это произойдет для всего HTML5.

...