Содержание
Для некоторых задач необходимо максимально сократить объем HTML кода. HTML5 дает возможность некоторых «маневров» для этих целей.
Убираем type скриптов и стилей
Для определения скриптов и стилей можно не указвать type, т.к. по умолчанию подразумевается, что подключается/используется CSS/Javascript.
Было:
<link type="text/css" rel="stylesheet" href="test.css" /> <style type="text/css"> ... </style> <script type="text/javascript"> ... </script>
Можно:
<link rel="stylesheet" href="test.css" /> <style> ... </style> <script> ... </script>
Не закрываем одиночные теги
Было:
<link /> <img src="path" /> <input />
Теперь можно:
<link> <img src="path"> <input>
Удаляем необязательные теги
- тег <html> может быть опущен, если первый тег после не го не является комментарием и перед закрывающим тегом так же нет комментария;
- тег <head> может быть опущен, если после него сразу идет тег и перед закрывающим нет комментария или пробела;
- тег <body> может быть опущен, если псоле него сразу идет тег (кроме style и script) и перед закрывающим нет комментария;
- закрывающий тег </li>, если за ним идет следующий li или закрывающий </ul>;
- закрывающие теги </dt> и <dd>, если после идет следующий dt/dd. </dd> так же можно опустить, если он идет последним в родительском контейнере;
- закрывающий тег </p> может быть опущен, если элемент <p> следует сразу за <address>, <article>, <aside>, <blockquote>, <dir>, <div>, <dl>, <fieldset>, <footer>, <form>, <h1-h6>, <header>, <hgroup>, <hr>, <menu>, <nav>, <ol>, <p>, <pre>, <section>, <table>, <ul>, или если больше нет содержания в родительском элементе и родительский элемент не <a>;
- тег </rt> может быть опущен, если если элемент rt следует сразу за еще одним rt или rp элементом, или, если нет больше содержания в родительском элементе;
- тег </rp> может быть опущен, если элемент rp следует сразу за еще одним rt или rp элементом, или, если нет больше содержания в родительском элементе;
- тег </optigroup> может быть опущен, если элемент optigroup следует сразу за еще одним optigroup, или, если нет больше содержания в родительском элементе;
- тег </option> может быть опущен, если элемент option следует сразу за еще одним option, или если он идет сразу после optigroup, или, если нет больше содержания в родительском элементе;
- тег </colgroup> может быть опущен, если если первое, что внутри элемента colgroup является элементом col, и если перед элементом непосредственно не предшествует другой элемент colgroup, закрывающий тег которого был опущен;
- тег </thead> может быть опущен, если элемент thead следует сразу за tbody или tfoot;
- тег <tbody> может быть опущен, если первое, что внутри tbody является элементом tr, и если перед элементом непосредственно не предшествует другой tbody, thead, или tfoot, закрывающий тег которого был опущен. (Он не может быть опущен, если элемент является пустым;
- тег </tbody> может быть опущен, если после элемента tbody сразу следует tbody или tfoot, или, если нет больше содержания в родительском элементе;
- тег </tfoot> может быть опущен, если элемент tfoot следует сразу же за эелментом tbody, или, если нет больше содержания в родительском элементе;
- тег </tr> может быть опущен, если элемент tr следует сразу же за еще одним элементом tr, или, если нет больше содержания в родительском элементе;
- тег </td> может быть опущен, если элемент td следует сразу же за еще одним элементом td или th, или, если нет больше содержания в родительском элементе;
- тег </th> может быть опущен, если элемент th следует сразу же за td или th, или, если больше нет содержания в родительском элементе.
Т.е. например можно писать вот так:
<ul class="pagination"> <li class="active">1 <li><a href="#">2</a> <li><a href="#">3</a> <li><a href="#">4</a> </ul>
Просто имя атрибута
Для атрибутов, которые могут принимать только одно значение (например disabled, checked) можно оставлять только имя атрибута. Было:
<input value="" disabled="disabled" />
Можно:
<input value="" disabled >
Значения атрибутов без кавычек
Для значений атрибутовтеперь не обязательно ставить кавычки.
Было:
<img src="path-to-img/img.png" alt="картинка" width="100" height="100" />
Можно:
<img src=path-to-img/img.png alt=картинка width=100 height=100 >
Заметка
С кавычками нужно быть осторожным: если значение атрибута содержит пробелы, тогда код прочитается с ошибками как браузерами, так и валидатором. Например, в таких случаях кавычки обязательны:
<img src=path-to-img/img.png alt="тестовая картинка" width=100 height=100 > <input value="значение по умолчанию"> <div class="class1 class2">
ПО материалам: Optional tags