HTML
Структура документа
<!DOCTYPE html>
Декларация типа документа или «доктайп».
<html>
Контейнер, в котором находится всё содержимое страницы.
<head>
Предназначен для хранения других элементов, цель которых — помочь браузеру в работе с данными.
<body>
Предназначен для хранения содержания веб-страницы (контента), отображаемого в окне браузера.
<title>
Заголовок HTML-страницы. Текст, который отображается в левом верхнем углу браузера, а также во вкладках. Задается внутри тега <head>.
<meta charset="utf-8">
Кодировка HTML-страницы. Задается внутри тега <head>, для того, чтобы веб-браузер мог правильно отображать текст на странице.
<meta>
Мета-теги (ключевые слова). Задаются внутри тега <head>.
Например, описание ключевых слов:
<meta name="keywords" content="разные, ключевые, слова">
Описание содержания страницы:
<meta name="description" content="краткое описание">
Некоторые из атрибутов:
- content
- http-equiv
- name
- scheme
Подключение стилей
Стили можно писать внутри html-кода страницы или подключать их как внешний файл.
- «Инлайновые» (встроенные) стили прописываются внутри тега <style>. Тег размещается внутри <head>.
- Внешние стили подключаются из внешнего файла с расширением .css. Для этого используется тег <link> внутри тега <head>.
Например:
<head> <link href="external.css" rel="stylesheet"> </head>
Подключение скриптов
Скрипты можно писать внутри html-кода страницы или подключать их как внешний файл.
- Встроенные скрипты прописываются внутри тега <script>. Тег размещается в самом конце перед закрывающим тегом </body>.
- Внешние скрипты подключаются из внешнего файла с расширением .js. Для этого используется тег <script>.
Например:
<script src="external.js"></script>
<header> и <footer>
Хедер и футер сайта или раздела.
<main>
Основное содержание сайта, по спецификации может использоваться на странице только один раз.
<article> и <section>
<article> — («статья») самостоятельный, цельный и независимый раздел документа. Этот раздел можно в неизменном виде использовать в различных местах, в том числе и на других сайтах. Примеры: статья, пост в блоге, сообщение на форуме и так далее.
<section> — («раздел») смысловой или логический контейнер, объединяющий содержание по смыслу. Например, блок «о компании», список товаров, раздел личной информации в профиле и так далее.
<div>
Контейнер общего назначения, не обязательно смысловой. Дивы используются для разметки мелких блоков, создания сетки и декоративных эффектов.
<nav>
Специальный элемент для навигационных блоков.
<aside>
Дополнительное содержание, не связанное напрямую с основным. Такие блоки часто называют «сайдбарами» или боковыми панелями.
<time>
Специальный тег для обозначения даты и времени.
Имеет атрибут datetime — для указания даты в машиночитаемом формате iso 8601. Браузер отображает только содержимое тега, а содержимое datetime не отображается.
<time datetime="2014-04-20">вчера</time>
<figure> и <figcaption>
<figure> — цельный и независимый блок содержания. Внутри этого тега размещают демонстрационный материал: изображения, схемы, куски кода и так далее.
<figcaption> — разъясняющий комментарий или «легенда». Размещается первым или последним элементом внутри <figure>.
<video>
Предназначен для вставки видео. Основные атрибуты:
- width и height — задают ширину и высоту видео.
- controls — пустой атрибут, при наличии которого отображается панель управления видео.
- preload — задаёт режим предзагрузки видео, имеет 3 возможных значения:
- none — не загружать ничего.
- metadata — загрузить служебную мета-информацию (длительность, первый кадр и так далее).
- auto — можно загрузить всё видео.
Значение по умолчанию зависит от браузера.
- src — задаёт адрес видеофайла.
- autoplay — пустой атрибут, при наличии которого воспроизведение видео начинается автоматически.
- poster — задаёт адрес картинки-обложки, которая отображается, когда видео ещё не загрузилось или не воспроизводится.
С помощью тегов <source> необходимо указывать адреса файлов в самых распространённых форматах.
<video controls preload="metadata" width="400" height="225"> <source src="uxtesting.mp4" type="video/mp4"> <source src="uxtesting.ogv" type="video/ogg"> <source src="uxtesting.webm" type="video/webm"> </video>
<audio>
Предназначен для вставки звука. Основные атрибуты:
- controls — пустой атрибут, при наличии которого отображается панель управления проигрывателем.
- preload — задаёт режим предзагрузки аудио, имеет 3 возможных значения:
- none — не загружать ничего.
- metadata — загрузить служебную мета-информацию.
- auto — можно загрузить весь файл.
Значение по умолчанию зависит от браузера.
- src — задаёт адрес аудиофайла.
- autoplay — пустой атрибут, при наличии которого воспроизведение звука начинается автоматически.
С помощью тегов <source> необходимо указывать адреса файлов в самых распространённых форматах.
<audio controls preload="metadata"> <source src="sound.mp3" type="audio/mpeg"> <source src="sound.oga" type="audio/ogg"> </audio>
<a>
Создает ссылку. У ссылок могут быть абсолютные и относительные адреса:
- Абсолютные адреса содержат в себе протокол, имя сервера (домен или хост) и путь. Например:
<a href="https://ru.wikipedia.org">википедия</a>
- Относительные адреса не содержат ни протокола, ни имени сервера, а путь не начинается со слэша /. Например:
<a href="../pages/1-basic-html.html">основы html>
Якорь ссылки — cимвол #, после которого идёт идентификатор. идентификатор создаётся с помощью атрибута id, который может быть задан у любого тега. Например:
<a href="#glava1">глава 1</a>
Всплывающая подсказка, задается атрибутом title. Например:
<a title="подсказка" href="#"></a>
<img>
Добавляет на страницу изображение. Например:
<img src="адрес" width="ширина" height="высота" alt="альтернативный текст">
Атрибуты:
- src — адрес.
- width — ширина
- height — высота.
- alt — альтернативный текст.
Таблицы
Таблица описывается с помощью тегов:
- <table> — обозначает таблицу.
- <tr> — обозначает строку таблицы, расшифровывается как «table row».
- <th> — обозначает ячейку-заголовок, расшифровывается как «table header».
- <td> — обозначает ячейку внутри строки таблицы, расшифровывается как «table data».
- <caption> — обозначает подпись к таблице (или заголовок таблицы). Должен размещаться внутри тега <table>, причём непосредственно внутри него и первым, до остальных вложенных тегов.
Теги <td> и <th> располагаются внутри тегов <tr>, а те, в свою очередь, внутри <table>.
Атрибуты:
- border — изменяет толщину рамок.
- cellpadding — позволяет добавлять отступы внутри ячеек.
- colspan — позволяет объединить ячейки по горизонтали (для тегов <td> или <th>).
- rowspan — позволяет объединить ячейки по вертикали (для тегов <td> или <th>).
CSS-свойства:
- border — позволяет задавать как внешние рамки таблицы, так и рамки каждой ячейки.
- border-collapse
- collapse — позволяет избавиться от двойных рамок. Схлопываются рамки соседних ячеек, а также рамки ячеек и внешняя рамка таблицы.
- separate — «расклеивает» ячейки, значение по умолчанию.
- border-top, border-right, border-bottom, border-left — задают отображение только одной рамки ячейки: верхней, правой, нижней или левой соответственно.
- border-spacing — позволяет добавлять отступы внутри ячеек. Задаётся для таблицы, в отличие от padding, которое задаётся для ячеек.
- padding — задаёт «внутренние отступы элемента» со всех сторон.
- padding-top, padding-right, padding-bottom, padding-left — позволяет задавать внутренние отступы отступы для каждой из сторон отдельно.
- caption-side — перемещение заголовка таблицы по вертикали. Значения: top и bottom.
- text-align — выравнивание по горизонтали. Значения: left, right и center.
- vertical-align — выравнивание по вертикали. Значения: top, middle и bottom.
- background-color — задаёт цвет фона.
- color — задаёт цвет текста.
- border-color — задаёт цвет рамок.
- width — задаёт ширину ячеек, столбцов и таблицы.
- height — задаёт высоту ячеек, столбцов и таблицы.
Разметка текста
<p>
Абзац. По умолчанию абзацы начинаются с новой строки и имеют вертикальные отступы.
<h1>...<h6>
Заголовки и подзаголовки.
<ul> и <ol>
Неупорядоченный и упорядоченный списки. Могут содержать внутри себя теги <div>, обозначающие «элемент списка». Элементы неупорядоченного списка по умолчанию отмечаются маркерами, элементы упорядоченного списка — нумеруются.
Список определений
Создаётся с помощью трёх тегов:
- <dl> — обозначает сам список определений.
- <dt> — обозначает термин.
- <dd> — обозначает определение термина.
Теги <dt> и <dd> пишутся парами внутри <dl>.
<strong> и <b> (важность)
Тег <strong> — определяет важность отмеченного текста.
Тег <b> — предназначен для выделения текста без придания ему особой важности.
Визуально оба тега одинаковы, они выделяют текст полужирным.
<em> и <i> (акцентирование внимания)
Тег <em> — определяет текст, на который сделан особый акцент, меняющий смысл предложения.
Тег <i> — обозначает текст, который отличается от окружающего текста, но не является более важным. Обычно так выделяют названия, термины, иностранные слова.
<br> и <hr> (перенос и разделитель)
Тег <br> — вставляет в текст перенос строки, не создавая при этом абзац.
Тег <hr> — создает горизонтальную линию-разделитель.
Цитаты
Тег <blockquote> — предназначен для выделения длинных цитат, которые могут состоять из нескольких абзацев. Тег выделяет цитату как отдельный блок текста с отступами.
Тег <q> — предназначен для выделения коротких цитат в предложениях. Текст внутри этого тега автоматически обрамляется кавычками.
Тег <cite> — используется для того, чтобы выделить источник цитаты, название произведения или автора цитаты.
Верхние и нижние индексы
Тег <sup> — отображает текст в виде верхнего индекса.
Тег <sub> — отображает текст в виде нижнего индекса.
<del> и <ins> (помечание изменений)
Тег <del> — выделяет текст, который был удалён в новой версии документа.
Тег <ins> — выделяет текст, который был добавлен в новой версии документа.
<pre>
Обозначает «предварительно отформатированный текст». Браузер сохраняет и отображает все пробелы и переносы, которые есть внутри тега <pre>.
<mark>
Обозначает просто выделенный текст.
Использование нестандартных шрифтов
Прописываем шрифт внутри тега <head> тег <link>:
<link href="//fonts.googleapis.com/css?family=pt+sans:400&subset=cyrillic" rel="stylesheet" type="text/css">
А также в свойстве селектора в css:
font-family: "pt sans", "arial", sans-serif;
Сервисы с бесплатными шрифтами:
@font-face
Пример подключения веб-шрифтов с помощью css-правила @font-face:
@font-face { font-family: "roboto"; src: local("roboto regular"), url("roboto.woff") format("woff"); }
Формы
<form>
Создает форму, внутри которой размещаются поля формы.
Атрибуты:
- action — задаёт адрес, url, отправки формы.
- method — задаёт метод отправки формы.
- enctype — задаёт способ кодирования данных формы при их отправке на сервер. Для возможности отправлять файлы из формы нужно использовать multipart/form-data.
Например:
<form action="https://ru.wikipedia.org" method="get"> поля формы </form>
Для отправки формы обычно используют методы get или post. Если не указать атрибут method, то будет использован get.
Метод get позволяет получить ссылку на результаты поиска и передать её кому-то.
Метод post посылает данные в теле http-запроса и используется, когда нужно отправить много данных и ссылка на результат обработки этих данных не нужна.
<input>
Создаёт поле формы.
Атрибуты:
- type — задаёт тип поля.
- name — задаёт имя поля.
- id — обозначает идентификатор, должен быть уникальным на странице.
- value — задаёт значение поля по умолчанию.
<label>
Подпись для поля ввода.
Первый способ создать подпись — обернуть текст подписи и тег поля в тег <label>:
<label> подпись <input type="text" name="username"> </label>
Второй — связать подпись с полем с помощью атрибута id тега <input> и атрибута for тега <label>:
<label for="user-field-id">имя пользователя</label> <input id="user-field-id" type="text" name="username">
<input type="text">
Текстовое поле.
<form action="https://ru.wikipedia.org" method="get"> <input type="text" name="search"> </form>
<input type="password">
Поле для ввода пароля.
<input type="submit">
Создает кнопку отправки формы.
Надпись на кнопке можно задать с помощью атрибута value. Задавать имя необязательно.
<input type="submit" value="войти">
<input type="checkbox">
Создает чекбокс или «галочку».
Атрибут checked устанавливает «галочку» по умолчанию.
<input type="checkbox" name="subscribe" id="subscribe-field" checked> <label for="subscribe-field">подписать вас на рассылку?</label>
<input type="radio">
Создает переключатель или «радиобаттон».
Атрибут value является для переключателей обязательным.
Атрибут checked устанавливает «галочку» по умолчанию.
<label> <input type="radio" name="question-one" value="p"> вариант p; </label> <label> <input type="radio" name="question-one" value="b" checked> вариант b; </label>
<input type="file">
Поле для загрузки файлов. Атрибут name является обязательным.
Для передачи файла на сервер, необходимо добавить форме атрибут enctype со значением multipart/form-data.
<form action="https://ru.wikipedia.org" method="post" enctype="multipart/form-data"> <input type="file" name="avatar"> </form>
<input type="hidden">
Скрытое поле.
<input type="hidden" name="account_number" value="15">
<select>, <option> и <optgroup>
Создают раскрывающийся список или «селект».
Варианты ответов задаются с помощью парных тегов <option>, которые должны располагаться внутри тега <select>.
С помощью тега <optgroup> можно формировать теги <option> в группы. Атрибут label этого тега определяет заголовок группы.
<select name="variants"> <optgroup label="группа вариантов 1"> <option value="1">вариант 1</option> <option value="2">вариант 2</option> </optgroup> <optgroup label="группа вариантов 2"> <option value="3">вариант 4</option> <option value="4">вариант 5</option> </optgroup> </select>
Атрибуты <select>:
- multiple — Превращает «селект» в «мультиселект», то есть список, в котором можно выбрать не один, а несколько вариантов.
- size — Определяет высоту мультиселекта.
Атрибуты <option>:
- value — задаёт значение варианта ответа, внутри тега <option> располагается подпись варианта ответа.
- selected — позволяет отметить как выбранные по умолчанию одно или несколько значений.
<textarea>
Создает многострочное поле ввода.
Имеет атрибуты name и id, которые аналогичны атрибутам текстового поля.
Ширина и высота задаются с помощью атрибутов cols и rows, соответственно.
Текст, расположенный между открывающим и закрывающим тегом <textarea> является значением по умолчанию.
<textarea name="comment" id="comment-field" rows="10">текст комментария</textarea>
Формы и html5
<input type="reset">
Сбрасывает введённые значения и возвращает изначально установленные (не обнуляет, а возвращает те, которые были установлены в полях формы по умолчанию).
<input type="reset" value="сбросить">
<input type="button">
Простая кнопка.
<input type="button" value="кнопка">
<input type="image">
В качестве кнопки отправки формы можно использовать изображение. Кнопка-изображение работает аналогично кнопке submit, но на сервер дополнительно передаются координаты точки, по которой был произведен щелчок.
Аналогично обычным изображениям на сайте у кнопки-изображения есть еще два атрибута:
- src — адрес изображения.
- alt — альтернативный текст, отображаемый в том случае, если изображение не загружено.
<button>
Создает кнопку. Внутри тега <button> можно размещать любые html-элементы, в том числе изображения. Например:
<button type="submit">войти<img src="enter-light.png"></button>
Если в атрибуте type тега <button> указать значение submit или reset, то кнопка будет отправлять данные на сервер или сбрасывать введенные значения.
По умолчанию значение атрибута type — submit.
Значение type="button" избавит кнопку от всей изначальной фунциональности. Кнопка будет выглядеть как кнопка, но ничего по умолчанию не делать. Это удобно, если нужно добавить кнопке дополнительное действие с помощью javascript.
<input type="date">
Поле выбора даты.
<input type="time">
Поле выбора времени.
<datalist>
Определяет список возможных значений текстового поля, которые отображаются, при начале ввода текста в поле.
<input type="text" list="browsers" name="browser"> <datalist id="browsers"> <option value="firefox"></option> <option value="chrome"></option> <option value="safari"></option> </datalist>
<input type="number">
Поле ввода числового значения. При помощи атрибутов min и max можно установить верхнюю и нижнюю границу допустимых значений. Атрибут step устанавливает величину шага изменения значения.
<input type="search">
Поле поиска.
<input type="datetime">
Поле выбора даты с указанием времени (c учетом временной зоны).
<input type="datetime-local">
Поле выбора даты с указанием времени (без учета временной зоны).
<input type="week">
Поле выбора порядкового номера недели в году и года.
<input type="month">
Поле выбора месяца и года.
<input type="range">
Поле выбора из диапазона. Выглядит как шкала с ползунком и позволяет выбрать число из некоторого интервала значений.
Атрибуты min и max устанавливают нижнюю и верхнюю границу допустимых значений. Атрибут step устанавливает величину шага изменения значения.
<input type="range" min="1" max="10">
<output>
Область, куда выводятся какие-либо результаты вычислений, обычно полученные при помощи javascript.
<output name="sum">[значение по умолчанию]</output>
<fieldset> и <legend>
Тег <fieldset> — спользуется для группировки полей форм. По умолчанию браузеры отображают результат в виде рамки вокруг этой группы полей, но при помощи css можно изменить его внешний вид.
Тег <legend> — добавляет заголовок для каждой группы.
<fieldset> <legend>заголовок группы</legend> <input type="text"> </fieldset>
<input type="tel">
Поле ввода телефонного номера.
<input type="email">
Поле для ввода электронной почты. Автоматически проверяет формат введённых данных.
<input type="url">
Поле для ввода адреса сайта. Автоматически проверяет формат введённых данных.
<input type="color">
Поле выбора цвета, при клике на такое поле появляется окно с возможностью выбрать цвет из палитры.
Обязательные поля
Атрибут required — делает поле обязательным для заполнения.
<input type="text" required>
Автофокус
Атрибут autofocus — сообщает браузеру в какое поле установить курсор по умолчанию. Должен быть только один на странице.
<input type="text" autofocus>
Паттерны значений полей
Атрибут pattern — с помощью регулярного выражения добавляет автоматическую проверку формата номера в поле.
<input type="text" name="passport" pattern="[0-9]{3}-[0-9]{5}" required>
Подсказка при заполнении полей
Атрибут placeholder — создает подсказку у полей, в которые вводятся текстовые значения (textarea, разные типы input и так далее), выводится внутри текстового поля.
<input type="text" placeholder="текст подсказки">
Запрет редактирования полей
Атрибут readonly — не дает пользователю изменять поле (вводить новый текст, модифицировать существующий). Введенное значение можно выделить и скопировать. Данные из этого поля отправляются на сервер.
<input type="text" readonly>
Атрибут disabled — не дает пользователю изменять поле (вводить новый текст, модифицировать существующий). Нельзя поставить фокус в это поле, введенное значение нельзя выделять и копировать. Данные из этого поля не отправляются на сервер.
<input type="text" disabled>
Управление автозаполнением полей
Атрибут autocomplete — при вводе первых букв текста выводится список сохранённых ранее значений, из которого можно выбрать подходящее.
Может принимать два значения on и off. Первое включает автозаполнение, второе — отключает. Отключение автозаполнения обычно используется из соображений безопасности, например, чтобы не сохранялись пароли, номера банковских карт и так далее.
<input type="text" autocomplete="off">
Переключение между полями
Атрибут tabindex — при нажатии клавиши tab браузер передает управление (фокус) от одного элемента к другому в том порядке, в котором они были объявлены на странице.
<input type="text" tabindex="3">
Ограничение по числу символов
- minlength — задаёт минимальное число символов, которое может быть введено пользователем в текстовом поле. Если число символов меньше указанного значения, то браузер выдаёт сообщение об ошибке и не отправляет форму.
- maxlength — устанавливает максимальное число символов, которое может быть введено пользователем в текстовом поле. Когда это количество достигается при наборе, дальнейший ввод становится невозможным.
<input type="text" minlength="2"> <input type="text" maxlength="25">
localstorage (javascript)
Позволяпет предотвратить потерю данных при работе с формами. Можно сохранять данные из формы в хранилище при работе с формой, а при загрузке страницы проверять хранилище на наличие данных, и если они есть, то подставлять их в форму.