Заранее хочу предупредить, что тут вы не найдёте каких-либо исследований на тему развития веба и html в частности. Тут не будет ни оценки важности CSS3 ни семантики тегов html4 — html5. Это просто крик в пустоту о том, каким инструментом я, как верстальщик, хотел бы пользоваться.
Если интересно, прошу пожаловать под кат.
Возьмём классический случай: футер сайта.
Его можно выполнить так:
<div class=”footer”> … </div>
Но с тем же успехом и так:
<footer> … </footer>
А можно так:
<section class=”footer”> … </section>
Но это варианты семантически верны (section не для всех случаев, но это уже мелочи). А ведь есть ещё и:
<p class=”footer”> … </p>
<span class=”footer”> … </ span>
, или:
<table class=”footer”>
<tr>
<td> … </td>
<tr>
</table>
, даже:
<a class=”footer”> … </a>
<b class=”footer”> … </b>
И всё это многообразие можно представить абсолютно одинаково при помощи css!
Более того. Однажды я видел сайт полностью выполненный из блоков вроде этого:
<ul class=”footer”>
<li>…
</ul>
При этом в css было прописано:
ul {display:table; … }
li {display:table-cell; … }
Так какой вообще тогда смысл во всех этих тэгах? Ведь 9 из 10 тегов взаимозаменяемы при помощи css. А для пользователя результат всё-равно один и тот же.
И плавно мы подошли к другой проблеме: Если 9 из 10 взаимозаменяемы, то почему этот 1 из 10 выбивается из колеи?
Примером такого тега является <textarea>
Что бы хотя бы повторить функционал <textarea> и его оформление при помощи, например, <div>’а приходится обвешивать страницу лишними скриптами и добавлять значительное количество строк к css. А с другой стороны, <textarea> практически не способен повторить функционал любого другого тега.
А я ещё не упоминал про «технические» теги.
Например подключение внешних файлов.
Самый логичный по названию тег – <link>. Всё верно, что бы подключить favicon добавляем в <head>:
<link rel="shortcut icon" href=" … ">
Что бы подключить таблицу стилей
<link rel="stylesheet" type="text/css" href=" … ">
Что бы подключить javascript
<script type="text/javascript" src=" … "></script>
Что? Да, всё верно. Всё подключаем при помощи тега <link>, а скрипты при помощи тега <script>. Было бы ещё понятно, если бы стили подключались тегом <style>. Потому что в нём, как и в <script> можно писать само тело таблицы стилей (или скрипта), но увы.
Складывается впечатление, что со стандартами html случилось примерно то же, что и с ГОСТами. Когда изначально набор правил был придуман для облегчения работы, а в итоге только усложняет её.
А теперь, я всё-таки расскажу каким бы я хотел видеть html.
Во-первых: всего 5 тегов.
- <a> … </a> — стандартный закрытый тег, полный аналог современного <div>’а
- <b> … — тег не требующий закрытия, ближе всего к нему из современных тегов <li>. Но, если применить жёсткое правило: r и/или n, а так же следующий <b> или закрывающий родительский </a> — являются закрывают тег. Можно использовать его аналогично h2 и для похожих случаев.
- <c /> — стандартный тег без “innerContent” но с “value” – это кнопки, поля ввода и подобные элементы.
- <d /> — пустой тег, использующийся для оформления. Ближайшие аналоги — <br /> и <hr />. Но так же им можно выполнить лого, или популярные когда-то снежинки под новый год.
- <e /> — технический тег, замена современным <link>, <meta>, <script> и иже с ними.
Во-вторых: изначальный, но более грубый CSS-reset – полное совпадение стилей всех описанных тегов, кроме <e /> — он невидим. Фактически первые 4 из описанных выше тегов должны обладать изначальным стилем современного <span>.
В-третьих: полная передача всех прав оформления от html к css(или его аналогу). Я хочу иметь возможность применить как полностью, так и частично оформление вышеупомянутого <textarea> к любому из первых 4 тегов.
В-четвёртых: полная передача прав управления от html к javascript(или его аналогу). Даже функционал элементарных checkbox’ов отдать. Опять же всё ради того что бы иметь возможность применить полностью или частично функционал <textarea> к любому из первых 4 тегов.
Само собой разумеется, что будут использоваться framework’и как для javascript так и для css, которые уберут недостаток, заключающийся в повышенной сложности некоторых стандартных моментов: отсутствие тегов <b>, <i>, <u> и т.д.
P.S. Конечно ещё многое хотелось бы поменять в css, но это уже совсем другая история.
Автор: titulusdesiderio