HTML и CSS развили определенную степень гибкости, что означает, что даже концептуально «блочные» элементы, такие как <div>
(самая старая и самая распространенная форма блочного содержимого HTML), не должны отображаться в виде блоков:
div { display: inline; }
Как вы заметили, <div>
подражать можно <table>
и подражать своим попутчикам. На самом деле, большинство тегов могут. С учетом их особой роли, я сомневаюсь , что вы могли бы с пользой переназначить теги макросов , как <html>
, <head>
, <body>
и <script>
, а «общие» теги , как <div>
, <p>
, <b>
, <em>
, <span>
, и <pre>
? Для захватов. Сделайте блоки встроенных тегов, блоки встроенными, поток предварительно отформатированных тегов, плавающие стационарные. Сойти с ума, если хотите!
Это возможно . Возможно, вы захотите рассказать о том, как мы все должны использовать «семантическую разметку», бла-бла- бла , или поверить в Pythonistas, что «Должен быть один - и предпочтительно только один - очевидный способ сделать это». Тем не менее Тим Тоади - умный и любопытный парень. Если у него будет свободная рука, он изучит их все. Это включает использование доступной гибкости, чтобы сделать замены. Некоторые мудры, некоторые докажут иначе. Но испытание, ошибка и опыт - единственный способ выяснить это. Таким образом, достаточные условия для замены присутствуют.
Я не думаю, что переоценивать, что замена также необходима. Как минимум, это очень удобно . В течение долгого времени, HTML не было <menu>
, <section>
или <aside>
элементы. Тем не менее, веб-страницы и приложения повсюду имеют меню, разделы и боковые панели. Как? Поскольку список HTML элементы ( <ul>
, <ol>
и <li>
) были легко переориентированы и некоторые обычаи переквалифицируются в качестве контейнеров меню и деталей. <div>
может стоять на <article>
, <section>
, <aside>
, <figure>
, и <summary>
. HTML5 догнал и добавил специальные элементы для некоторых ранее не использованных вариантов использования. Это отличное обновление и исправление, чтобы приспособиться к общему, реальному использованию.
Тем не менее, остается много общих идиом, которые не имеют специальных тегов или семантических моделей . Такие вещи, как страницы, сноски, извлекаемые цитаты, потоки комментариев, связанные аватары, «лайки», подзаголовки и субтитры, которые я и многие другие используют каждый день. Что мы собираемся делать? Что мы можем Измените «близкие, но неточные» элементы с классами и идентификаторами, чтобы они могли поддерживать и поддерживать нашу работу в течение следующих пяти или десяти, или даже многих лет, пока не догонят HTML6 или HTML7. HTML / CSS «да, это теоретически X, но мы собираемся пометить его и работать с ним как Y», это невероятно удобно. Обязательно, правда. Это делает веб-контент гибким, а не хрупким.
Если пойти еще дальше, «семантическая разметка» имеет неснижаемые ограничения . Это верно для любой строгой структуры, которую вы можете себе представить для контента.
Стандартные форматы не могут охватывать все человеческие потребности, желания и разнообразие. Они всегда будут «за углом» того, что люди делают сейчас . Как они вводят новшества. Черт, HTML5 все еще отстает от сносок, подзаголовков и других нововведений в печати 17-го века. В нем отсутствуют функции, необходимые для многих информационных работников и создателей контента. Итак, мы импровизируем.
Еще более неизменным является то, что информация не подчиняется одному набору правил. Конечно, это начинается как таблица. Но, может быть, вы просто хотите резюме - скажем название для каждой строки, как список. Возможно, это занимает слишком много места, и вы хотели бы использовать его как встроенный список для экономии места. Может быть, у вас есть записи, название которых вы просто хотите, тогда, если вы нажмете, вы увидите основные детали. Или вы хотите, чтобы элементы в сложном списке или таблице были сгруппированы и классифицированы. О, теперь вы хотите, чтобы это транспонировалось и классифицировалось по-другому. Или значения, представленные в виде гистограммы. Это то, что делается каждый день в приложениях, электронных таблицах и визуализации данных. Они являются неотъемлемой частью нашего информационного ландшафта, а также того, что мы хотим и должны делать в Интернете. Люди постоянно реорганизуют форму и представление наших данных. Это не просто одна вещь, или один формат / макет, или одна концепция. Это взаимозаменяемо, семантика зависит от обстоятельств и выбора, который пользователи делают в интерактивном режиме. Да, пометить текст как "выделенный" (<em>
), но это просто соглашение. Я работал над документами, по крайней мере, с полдюжины разных «акцентов». Мы должны быть в состоянии настроить и переназначить это для разных целей, разных интерпретаций. Один вид акцента HTML? Мучительно редукционистский. Ограничение. Хрупкое. То же самое относится и к <table>
, <p>
и т. Д.
Замечательно иметь теги / элементы, которые помогают организовать представление всего сообщества о том, «что и куда идет». Это помогает устанавливать соглашения и идиомы и делает нас коллективно более эффективными. Но способность переназначить вещи, переопределить и изменить эти структуры? Это неотъемлемая часть инклюзивности Интернета и его успеха.