IE не стилирует теги HTML5 (с shiv)

Я пытаюсь создать стиль <header>, и он не работает в IE. Я использую Modernizr, но я сам пробовал shiv.

Пример кода

<section>
  <header>
    <h1>Title</h1>
  </header>
  <p>Body</p>
</section>

Стили:

section {
    border: 2px dotted black;
    padding: 0.25em;
}

header h1 {
    background-color: #ccc;
    text-align: center;
    margin: 0;
}

Я ожидаю границы вокруг содержимого заголовка и раздела, но вместо этого есть только '[' look border, а заголовок находится под ним.

Что происходит не так?

Ответ 1

В IE даже с помощью shiv вам нужно объявить элементы HTML 5 как элементы блока. Я использую эту строку для Internet Explorer, но вы можете изменить ее для необходимых элементов.

header,nav,article,footer,section,aside,figure,figcaption{display:block}

Из Документация Modernizr:

Возможно, вы также захотите установить многие из этих элементов в display:block;

Ответ 2

Это зависит от стиля, который вы пытаетесь наложить на элемент. Так, как и Джеймс Лонг, прежде всего, пользовательские элементы inline по умолчанию. Для IE8 вы также можете присвоить элементу границу, добавив display: inline-block;.

Ответ 3

Иногда пользовательские элементы (как мы убеждаем IE использовать теги HTML5) по умолчанию inline. Попробуйте добавить следующий фрагмент CSS:

section,
header {
    display: block;
}