Обходной путь для нераспознанных тегов <section>в старых браузерах - PullRequest
1 голос
/ 28 июня 2011

У меня есть пара вложенных тегов раздела, чтобы установить ширину моего контента, но у меня проблемы с браузерами (или версиями браузеров), которые не распознают тег: они просто позволяют контенту заполнять весь текст ширина родительского контейнера.

Мой код выглядит примерно так:

<body>
    <section style="min-width:800px">
        <section style="width:500px">
            <p>Bunch of Text Here That Forms The Content</p>
        </section>
    </section>
</body>

Теперь в браузерах, которые не распознают тег <section>, содержимое внутреннего <section> ведет себя так, как будто тег не существует, и содержимое просто заполняет ширину страницы. Любая идея, что я могу с этим поделать?

Ответы [ 2 ]

4 голосов
/ 28 июня 2011

Если вы не возражаете против дизайна и макета вашего сайта в зависимости от JavaScript для более старых браузеров (в основном IE версий 6-8), вы можете использовать HTML5 JavaScript shim для IE или Modernizr :

<head>
    <meta charset="utf-8" />
    <title>Stack Overflow Rocks!</title>

    <link rel="stylesheet" href="/path/to/file.css" media="all" />

    <!--[if lt IE 9]>
        <script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
</head>

Чтобы использовать этот скрипт, он должен быть включен перед элементом (то есть в <head>), но не имеет значения, появляется ли он до или после какого-либоCSS.Тем не менее, для повышения производительности предпочтительно включать любой CSS перед этим сценарием.

Умный и несколько креативный подход, который не использует JavaScript , заключается в вставке элемента, который IE/ Win 6-8 понимает (например, старый <div>) внутри семантических элементов HTML5:

<aside>
    <div id="sidebar">
        <!-- Business as Usual Here -->
        ...
    </div>
</aside>

Затем вы можете применить свой CSS, используя идентификатор (для старых браузеров) илиЭлемент HTML5 (для современных браузеров):

aside,
#sidebar {
    ...
}

Хотя этот подход добавляет дополнительный набор тегов для каждого элемента HTML5 - и, возможно, не является чистым, как собственный метод HTML5 -это не зависит от JavaScript и макет вашего сайта может выглядеть одинаково с включенным JavaScript или без него .


Для дальнейшего чтения об элементах HTML5 и IE / Win,см. История HTML5 Шива .

3 голосов
/ 28 июня 2011

Большинство браузеров обрабатывают неизвестные теги так, как будто к ним применено display: inline.Вы захотите применить display: block к <section> (и другим тэгам HTML5 уровня блока, если планируете их использовать) в своей таблице стилей.(Сброс таблиц стилей, таких как Эрик Мейер , часто позаботится об этом за вас.)

В более старых версиях IE, напротив, вообще не разрешат стилизовать теги, если онине знаю о них (например, IE 6 не знал о теге <abbr>, хотя он был в спецификации HTML 4), если только вы не создали этот экземпляр тега с помощью JavaScript.Вот что делает HTML5 shiv .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...