В настоящее время одним из самых распространённых способов создания всевозможных пользовательских интерфейсов стала связка технологий HTML/CSS/Javascript, изначально разработанных для описания интерактивных гипертекстовых документов в сети Интернет.
HTML отвечает за логическую структуру документа, CSS – за внешний вид, Javascript – за нетривиальную интерактивность. В этой главе речь пойдёт только о визуальном оформлении, поэтому Javascript пока останется за кадром.
HTML-документ состоит из текста и разметки. Разметка оформляется при помощи тегов:
<название_тега аттрибуты>содержимое</название_тега>Теги по своей сути являются аналогом скобок: в частности, они должны быть сбалансированы – каждому открывающему тегу должен соответствовать свой закрывающий. Есть незначительное количество тегов, не требующих закрывающего. Комментарии оформляются так:
<!-- это обычный многострочный комментарий -->Приведём общую структуру HTML-документа:
<!DOCTYPE html>
<html>
<head>
<!-- здесь находится общая информация о документе -->
</head>
<body>
<!-- здесь находится сам документ -->
</body>
</html>Теги <html>, <head> и <body> не являются обязательными. Если их не ставить, они расставляются автоматически. Например, <body> ставится перед первым тегом, являющимся недопустимым внутри <head>.
Внутри тега <head> настоятельно рекомендуется указывать хотя бы две вещи: название документа (отображается браузером как название окна или вкладки) и кодировку. Делается это так:
<title>Вася не любит суп</title>
<meta charset="utf8"> <!-- У тега meta нет парного закрывающего -->Типичный текст состоит в основном из заголовков и абзацев. Каждый абзац рекомендуется заключать в тег <p>. Стоит отметить, что HTML воспринимает любые последовательности пробелов как одиночный пробел, поэтому выделить абзац только лишь при помощи переносов строки не удастся.
Для заголовков есть теги <h1>, <h2>, <h3>, <h4>, <h5>, <h6>. Различаются они размером текста.
Внутри текста некоторые его куски можно выделять курсивом (теги <i> и <em>) или жирным шрифтом (теги <b> и <strong>). Какой именно тег из каждой пары использовать – обычно дело вкуса. Де факто <i> ничем не отличается от <em>, а <b> – от <strong>.
Если требуется перенос на следующую строчку, можно воспользоваться тегом <br>. Если требуется символ, отсутствующий на клавиатуре, можно либо его вставить в текст при помощи средств, предоставляемых ОС или текстовым редактором (при условии, что кодировка документа поддерживает такие символы), либо воспользоваться специальной последовательностью символов. Например, знак «тире» можно поставить буквосочетанием —, а амперсанд – буквосочетанием &.
Основными строительными блоками для HTML-документов являются теги <div> и <span>. С ними не связано никакого оформления: оно полностью настраивается при помощи CSS. Тег <span> используется внутри текстовых тегов типа <p>, тег <div> – в остальных местах (аккуратно: <div> внутри <p> недопустим; браузер имеет право изменить подобную разметку).
Обычно каждому тегу <div> или <span> назначается идентификатор или класс. Например, так:
<div id="beginning" class="title">История про Васю</div>
<div class="header">Вася спрятал суп из холодильника</div>
<div class="text">Вася идёт гулять. У него это <span class="emph large">не очень</span> получается.</div>Каждому тегу можно назначить один уникальный идентификатор и сколько угодно классов (их разделяют пробелами). Идентификаторы используются в основном для возможности выбрать элемент
программным образом. Классы же обычно используются для визуального оформления элементов.
Визуальное оформление задаётся при помощи языка CSS. Использовать его можно в одном из трёх мест: внешние файлы, подключаемые в разделе <head> при помощи тега <link>; внутри тега <style>, который разрешается использовать внутри тега <head>; ограниченным образом – как значение аттрибута style произвольного тега.
Мы будем использовать тег <style>. Пример CSS-документа:
/* оформление элемента с идентификатором beginning */
#beginning {
font-size: 4rem;
background: rgb(200,200,200);
text-align: center;
}
/* оформление элементов с классом header */
.header {
margin-top: 10px;
font-size: 2rem;
margin-bottom: 5px;
}
.large {
font-size: 1.5em;
}
.text {
margin-top: 5px;
margin-bottom: 5px;
}
.emph {
font-style: italic;
font-weight: bold;
}Краткий экскурс в HTML и CSS можно получить на сайте W3Schools. Далее будут перичислены наиболее полезные CSS-свойства:
Также рекомендуется прочитать про Flexbox (display: flex;), облегчающий задачу расположения элементов внутри других.
Пример несложной странички можно посмотреть по ссылке.
@ 2016 arbrk1, all rights reversed