HTML 1
- presentation (Word)
- procedural (PS)
- semantic (HTML)
SGML -> HTML (Tim Berners Lee)
После 4 спеки W3C стала пропихивать XHTML -> WHATWG
tag != element
perfectionkillsw3scholls
whatwg spec
can i use
Минимально валидный документ
<!DOCTYPE html>
<html lang=en> // не входит в понятие минимальный
<title>Kottans</title>
<meta charset=utf-8>
implicit tags (html, body, head) - их можно не открывать (стандарт не требует)
Types of elements:
- void - (нет контента) img (не должно быть закрывающего тега и контента)
- raw text - script, style (любой контент, но с ограничениями html comments)
- escapable - textarea
- foreign - svg
- normal
Caracter references
& ©
— - длинное тире
– - тире между временными отрезками
Deprecated tags
В том числе presentational
tt, center, big, font
Теги, атрибуты, классы о своем контенте должны кричать.
Классы float-left, float-right - плохо.
Можно (не стоит линтить):
- omitted tags
- quotes
Семантика - элементы, которые определены в спецификации имеют свое внутреннее значение
main, header, footer...
<header>
<div class=header> - не соответствует
<div role=header> - соответствует
main - главное в документе (whatwg - где угодно, w3c - только один раз), то, что отличается от странице к странице
hgroup - групировка h (whatwg - deprecated)
section - не имеет особого смысла сам по себе (куски сайта)
article - имеет смысл сам по себе (widget, tweet)
nav - навигация главная сайта
b - keywords, выделение
strong - важность, привлечь внимание
i - альтернативное произношение
em - повышение тона (голосовое ударение)
Если внутри p инлайновый контент, то она закроется перед следующим блочным элементом
Категории атрибутов:
- global - id, class, hidden, lang
- events - onclick
- data
- own - ol reversed, btn type
aria-hidden=true для svg
Links
<link rel=stylesheet media=> - стили
<link rel=author href=> - с которым можно связаться
<link rel=next href=> - поиск показываем постраничный
<link rel=previous href=> -
<link rel=prefetch href=> - погрузить картинки после странички
<link rel=canonical href=> - главная ссылка, если много ссылок на страницу
<base href=/ target=_blank> - дефолтные атрибуты для открытия ссылок
noscript - работает только когда юзер отключил скрипты (если просто не получил - не сработает)
template - для шаблонов (скрипт не надо использовать с другим типом)
script src="" defer async - чтобы скрипты были не блокирующими и работали, когда DOM ready (если type=module, то по умолчанию defer стоит)
Если подключаем shim - то им async, нашим же скриптам defer
Разметка заголовков:
<section>
<header>
<h1>heading
<p>subheading
<p>subsubheading
</header>
</section>
Слайдеры можно делать с помощью css target
Формы можно делить на section или fieldset
small - копирайты, пояснения
address - где найти человека (не только адрес, но и fb, tw, gh)
aside - рекламка, список ссылок похожие статьи, gh-twitter (контент, который так себе относится к главному контенту)
figure - картинки, графики, куски кода, которые можно переместить по статье и они не потяреют смысла, потому что подписаны и имеют отношение к контенту
ins - добавлено
del - удалено
s - что утратило правдивость (устаревшая цена)
При подключении шрифтов через font-face, оперировать font-weight, а не названием шрифта
mark - выделение результатов поиска, немедленный интерес пользователя
Как ставить кавычки, чтобы разботали с разными языками
<q></q>
::before, ::after {
content: quotes
}
Time
<time datetime="2016-05-21">21</time>–
<time datetime="2016-05-23">23 мая</time>
Download
<a href=cv.pdf download=NAME_SURNAME_CEO_GOOGLE.pdg>my CV</a>
Dialog
<dialog>
</dialog>
.showModal()
.close()
есть backdrop
можно открыться с каким-то якорем автоматом (например окно при клике на товар)
alt - обязательный атрибут, но может быть пустым - только для оформления.
Defenition list (или содержание делать можно)
<dl>
<dt>Firefox</dt>
<dd>Browser</dd>
</dl>