Ivan Asmer 5 年 前
コミット
7d420b614f
12 ファイル変更1746 行追加0 行削除
  1. 374 0
      01_html.md
  2. 603 0
      02_css.md
  3. 277 0
      03_css.md
  4. 243 0
      04_responsive.md
  5. 249 0
      05_examples.md
  6. BIN
      images/01.jpg
  7. BIN
      images/dom1.png
  8. BIN
      images/inline.jpg
  9. BIN
      images/nav.png
  10. BIN
      images/padding.jpg
  11. BIN
      images/path.png
  12. BIN
      images/tags_preview.png

+ 374 - 0
01_html.md

@@ -0,0 +1,374 @@
+Вёрстка (HTML/CSS) - основы HTML
+================================
+
+
+1 Введение:
+-----------
+
+
+**Вёрстка** — создание структуры html-кода, размещающего элементы веб-страницы
+(изображения, текст и т. д.) в окне браузера, согласно разработанному макету,
+таким образом, чтобы элементы дизайна выглядели аналогично макету.
+
+
+Верстка должна быть:
+
+-   адаптивной;
+
+-   кроссбраузерной (https://caniuse.com/);
+
+-   семантичной (https://gsnedders.html5.org/outliner/);
+
+-   валидной (https://validator.w3.org/);
+
+также: простотой, гибкой, компонентной.
+
+
+2 HTML/CSS:
+-----------
+
+
+**HTML** (HyperText Markup Language — «язык гипертекстовой разметки») —
+стандартизированный язык разметки документов (веб-страниц).
+
+**CSS** (Cascading Style Sheets — каскадные таблицы стилей) — формальный язык
+описания внешнего вида документа, написанного с использованием языка разметки.
+
+Актуальные версии: HTML 5 и CSS 3.
+
+
+3 HTML tag:
+-----------
+
+
+**Tag (тег)** — элемент языка разметки гипертекста.
+
+Существуют парные теги (включают открывающийся и закрывающийся теги) и
+одиночные. Теги могут вкладываться друг в друга. При вложении следует соблюдать
+порядок их закрытия (принцип «матрёшки»).
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+<p> Text </p> - парный
+<br/> - одиночный
+
+<p><i> Hello! </i></p> - верно
+<p><i> Hello! </p></i> - неверно
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+4 Структура HTML-документа:
+---------------------------
+
+
+Язык HTML следует правилам, которые содержатся в файле объявления типа документа
+(Document Type Definition, или DTD).
+
+DTD представляет собой XML-документ, определяющий, какие теги, атрибуты и их
+значения действительны для конкретного типа HTML. Для каждой версии HTML есть
+свой DTD.
+
+DOCTYPE отвечает за корректное отображение веб-страницы браузером. DOCTYPE
+определяет не только версию HTML (например, html), но и соответствующий DTD-файл
+в Интернете.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+<!-- Объявление формата документа -->
+<!DOCTYPE html>  
+<html>
+
+<head>
+
+  <!-- Определяем кодировку символов документа --> 
+  <meta charset="utf-8">
+
+  <!– Устанавливаем параметры отображения страницы на мобильных устройствах -->
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+  <!-- Задаем заголовок документа --> 
+  <title>Title</title>
+
+  <!-- Подключаем внешнюю таблицу стилей --> 
+  <link media="all" rel="stylesheet" href="css/main.css">
+  <!-- Подключаем скрипты --> 
+  <script src="js/main.js"></script>
+
+</head>
+
+<body>
+  <!-- Основная часть документа --> 
+</body>
+
+</html> 
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+5 Объектная модель документа:
+-----------------------------
+
+
+Элементы, находящиеся внутри тега \<html\>, образуют дерево документа, так
+называемую объектную модель документа, **DOM** (document object model). При этом
+элемент \<html\> является корневым элементом.
+
+
+![](images/dom1.png)
+
+
+
+-   **Предок** — элемент, который заключает в себе другие элементы. На рисунке
+    предком для всех элементов является \<html\>. В то же время элемент \<body\>
+    является предком для всех содержащихся в нем.
+
+
+-   **Потомок** — элемент, расположенный внутри одного или более типов
+    элементов. Например, \<body\> является потомком \<html\>, а элемент \<p\>
+    является потомком одновременно для \<body\> и \<html\>.
+
+
+-   **Родительский элемент** — элемент, связанный с другими элементами более
+    низкого уровня, и находящийся на дереве выше их.
+
+
+-   **Дочерний элемент** — элемент, непосредственно подчиненный другому элементу
+    более высокого уровня.
+
+-   **Сестринский элемент** — элемент, имеющий общий родительский элемент с
+    рассматриваемым, так называемые элементы одного уровня.
+
+
+6 Блочные и строчные теги:
+--------------------------
+
+
+Выделяют две основные категории HTML-элементов, которые соответствуют типам их
+содержимого и поведению в структуре веб-страницы — блочные и строчные элементы.
+С помощью блочных элементов можно создавать структуру веб-страницы, строчные
+элементы используются для форматирования текстовых фрагментов.
+
+
+-   примеры блочных: \<p\>, \<div\>, \<form\>, \<nav\>, \<ul\>, \<h1\>, ...
+
+-   примеры строчных: \<a\>, \<span\>, \<b\>, \<em\>, \<i\>, \<mark\>, ...
+
+
+7 Атрибуты тегов:
+-----------------
+
+
+Теги могут содержать атрибуты. С их помощью можно менять свойства объекта,
+которому соответствует тег.
+
+Атрибуты записываются внутри открывающего тега через пробел от его имени в виде
+отдельного ключевого слова или ключевого слова, знака “=” и параметра (значения
+атрибута). Существуют универсальные атрибуты, которые применяются практически ко
+всем тегам.
+
+
+Универсальные атрибуты:
+
+-   class - определяет имя класса, которое позволяет связать тег со стилевым
+    оформлением;
+
+-   id - указывает имя стилевого идентификатора;
+
+-   style - применяется для определения стиля элемента с помощью правил CSS;
+
+-   title - описывает содержимое элемента в виде всплывающей подсказки.
+
+
+8 Основные группы тегов:
+------------------------
+
+
+\- служебные теги (doctype, head, title, ...);
+
+\- теги для группировки контента (div, header, main, footer, section, article,
+...);
+
+\- списки (ol, ul, dl);
+
+\- ссылки (a);
+
+\- таблицы (table, thead, tbody, tr, th, td, ...);
+
+\- текстовые (h1, p, q, strong, ...);
+
+\- изображения (img, …);
+
+\- формы (form, input, select, button, ...).
+
+
+Полный список тегов - <https://html5book.ru/examples/html-tags.html>
+
+
+### Примеры тегов:
+
+
+-   **\<header\>** - группирует вводные и навигационные элементы, не является
+    обязательным. Может содержать заголовки, оборачивать содержание раздела
+    страницы, форму поиска или логотип.
+
+
+-   **\<nav\>** - предназначен для создания блока навигации веб-страницы или
+    всего веб-сайта. На странице может быть несколько элементов \<nav\>. Не
+    заменяет теги \<ul\> или \<оl\>, он просто их обрамляет.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+<header class="header">
+    <a href="#" class="logo"><img src="images/logo.png" alt="logo"></a>
+    <nav class="main-nav">
+    <ul>
+            <li><a href="#">Item 01</a></li>
+            <li><a href="#">Item 02</a></li>
+            <li><a href="#">Item 03</a></li>
+            <li><a href="#">Item 04</a></li>
+    </ul>
+    </nav>
+</header>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+-   **\<section\>** - группирует тематическое содержимое и обычно содержит
+    заголовок. Не является блоком-оберткой, для этих целей уместнее использовать
+    элемент \<div\>. В качестве содержимого может выступать оглавление, разделы
+    научных публикаций, программа мероприятия.
+
+
+-   **\<article\>** - группирует записей, публикаций, статей, записей блога,
+    комментариев и т.п. Представляет собой независимый обособленный блок,
+    предназначенный для многократного использования, как правило, начинается с
+    заголовка.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+<section>
+    <h1>Main heading</h1>
+    <article>
+        <h2>...</h2>
+        <p>...</p>
+    </article>
+    <article>
+        <h2>...</h2>
+        <p>...</p>
+    </article>
+</section>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+-   **\<aside\>** - группирует содержимое, связанное с окружающим его контентом
+    напрямую, но которое можно счесть отдельным (т.е., удаление этого блока не
+    повлияет на понимание основного содержимого). Чаще всего элемент
+    позиционируется как боковая колонка.
+
+
+-   **\<footer\>** - представляет собой нижний колонтитул страницы, часто
+    содержит: сведения об авторских правах, ссылки на условия использования,
+    контактную информацию, ссылки на связанное содержимое и т.п.
+
+
+-   **\<main\>** - представляет основное содержимое документа (содержимое
+    элемента \<body\>). Элемент \<main\> не может быть потомком таких элементов
+    как \<article\>, \<aside\>, \<footer\>, \<header\> или \<nav\>.
+
+
+-   **\<time\>** - определяет время (24 часа) или дату с возможным указанием
+    времени. Текст, заключенный в данный тег, не имеет стилевого оформления
+    браузером.
+
+
+-   **\<mark\>** - текст, помещенный внутрь тега \<mark\>, выделяется по
+    умолчанию желтым цветом (цвет фона и цвет шрифта в выделенном блоке можно
+    изменить, задав определенные css-стили). С помощью данного тега можно
+    отмечать важное содержимое, а также ключевые слова.
+
+
+-   **\<form\>** - основу любой формы составляет элемент \<form\>...\</form\>.
+    Он не предусматривает ввод данных, так как является контейнером, удерживая
+    вместе все элементы управления формы – поля. Атрибуты этого элемента
+    содержат информацию, общую для всех полей формы, поэтому в одну форму нужно
+    включать поля, объединенные логически.
+
+
+9 Понятие «layout»:
+-------------------
+
+
+Layout - это шаблон(каркас) веб-страницы.
+
+
+![](images/tags_preview.png)
+
+
+
+Полезные ссылки:
+----------------
+
+
+-   <https://www.w3schools.com/>
+
+-   <https://html5book.ru/>
+
+
+
+
+
+
+

ファイルの差分が大きいため隠しています
+ 603 - 0
02_css.md


ファイルの差分が大きいため隠しています
+ 277 - 0
03_css.md


+ 243 - 0
04_responsive.md

@@ -0,0 +1,243 @@
+Вёрстка (HTML/CSS) - адаптивная вёрстка
+=======================================
+
+
+![](images/01.jpg)
+
+**Адаптивная вёрстка** предполагает отсутствие горизонтальной полосы прокрутки и
+масштабируемых областей при просмотре на любом устройстве, читабельный текст и
+большие области для кликабельных элементов. С помощью медиазапросов можно
+управлять компоновкой и расположением блоков на странице, перестраивая шаблон
+таким образом, чтобы он адаптировался под разные размеры экранов устройств.
+
+
+1  Принципы адаптивного дизайна:
+--------------------------------
+
+
+-   гибкость макета базируется на использовании относительных единиц измерения
+    вместо фиксированных пиксельных значений, что позволяет регулировать ширину
+    в соответствии с доступным пространством;
+
+
+-   гибкость текстового содержимого достигается путем вычисления размеров шрифта
+    относительно размера шрифта;
+
+
+-   проблема гибких изображений решается с помощью правила img {width: 100%;
+    max-width: 100%;} для всех картинок на сайте. Это правило гарантирует, что
+    изображения никогда не будут шире, чем их контейнеры и никогда не превысят
+    своих истинных размеров на больших экранах;
+
+
+-   медиазапросы изменяют стили на основании характеристик устройства, связанных
+    с отображением контента, включая тип, ширину, высоту, ориентацию и
+    разрешение экрана. С помощью медиазапросов создается отзывчивый дизайн, в
+    котором к каждому размеру экрана применяются подходящие стили.
+
+
+2 Дополнительные приёмы:
+------------------------
+
+
+-   масштабируемая векторная графика — используйте svg-изображения, которые
+    масштабируются до любого размера без потери качества и хорошо выглядят на
+    дисплеях Retina;
+
+
+-   оставьте самое необходимое — расставьте приоритеты и правильно скройте
+    контент — используйте скрытые элементы управления, особенно для устройств с
+    небольшими экранами. Всплывающие окна, табы, off-canvas меню и другие
+    подобные приёмы помогут уменьшить количество элементов на странице;
+
+
+-   большое кликабельное пространство для кнопок — чем больше активная область
+    кнопки, тем легче пользователю взаимодействовать с ней;
+
+
+-   добавьте интерактивности в свои интерфейсы — в ответ на действие
+    пользователя создайте ответное действие — анимацию, которая будет работать
+    при наведении на элемент на десктопных устройствах и при прикосновении к
+    элементу на мобильных устройствах.
+
+
+
+3 Мета-тег viewport:
+--------------------
+
+
+Чтобы мобильные браузеры не изменяли автоматически размер страниц сайта,
+используется специальный тег \<meta\> с атрибутом name="viewport". В данном теге
+допускается устанавливать определенное значение для параметров width и
+initial-scale:
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+<meta name="viewport" content="width=device-width, initial-scale=1">
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+-   initial-scale=1 говорит о том, что размер страницы в браузере будет равен
+    100% величины области просмотра. То есть, соотношение между физическим
+    пикселем и css пикселем будет 1:1;
+
+
+-   width=device-width говорит о том, что ширина страницы будет равна 100%
+    ширины окна любого браузера. То есть, ширина страницы сайта соответствует
+    ширине устройства, поэтому её не надо масштабировать.
+
+
+4 «Контрольные» точки:
+----------------------
+
+
+Обычно «контрольные» точки имеют 4 варианта в зависимости от ширины экрана:
+
+
+-   320px (375px) – 767px (мобильные устройства);
+
+
+-   768px – 1023px (планшеты);
+
+
+-   1024px – 1199px (десктопы);
+
+
+-   1200px – … («большие» десктопы).
+
+
+5 Медиа-запросы:
+----------------
+
+
+В общем случае медиа-запрос состоит из ключевого слова, описывающего тип
+устройства (необязательный параметр) и выражения, проверяющего характеристики
+данного устройства. Из всех характеристик чаще всего проверяется ширина
+устройства width. Медиа-запрос является логическим выражением, которое
+возвращает истину или ложь.
+
+Медиа-запросы могут быть добавлены следующими способами:
+
+
+-   непосредственно в коде страницы:
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+<style>
+    @media (max-width: 767px) { #sidebar {display: none;} }
+</style> 
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+-   внутри таблицы стилей main.css:
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+@media (max-width: 767px) { #sidebar {display: none;} }
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+6 Логические операторы:
+-----------------------
+
+
+-   оператор **and** связывает друг с другом разные условия:
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+@media screen and (max-width: 600px) {/* CSS-стили */;}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+-   оператор **not** позволяет сработать медиазапросу в противоположном случае.
+    Ключевое слово not добавляется в начало медиазапроса и применяется ко всему
+    запросу целиком, т.е. запрос:
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+@media not all and (monochrome) {...}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+7 Тип носителя:
+---------------
+
+
+Тип носителя представляет собой тип устройства, например, принтеры, экраны.
+
+
+-   **all** - подходит для всех типов устройств;
+
+
+-   **print** - предназначен для страничных материалов и документов
+    просматриваемых на экране в режиме предварительного просмотра печати;
+
+
+-   **screen** - предназначен в первую очередь для экранов цветных компьютерных
+    мониторов;
+
+
+-   **speech** - предназначен для синтезаторов речи.
+
+
+8 Характеристики носителя:
+--------------------------
+
+
+К характеристикам медианосителя относятся проверяемые параметры устройства.
+Значения, которые используются при задании характеристик, являются контрольными
+точками.
+
+
+-   **width** - проверяет ширину области просмотра. Значения задаются в единицах
+    длины, px, em и т.д., например, (width: 800px). Обычно для проверки
+    используются минимальные и максимальные значения ширины. min-width применяет
+    правило если ширина области просмотра больше значения, указанного в запросе,
+    max-width — ширина области просмотра меньше значения, указанного в запросе;
+
+
+-   **height **- проверяет высоту области просмотра. Значения задаются в
+    единицах длины, px, em и т.д., например, (height: 500px). Обычно для
+    проверки используются минимальные и максимальные значения высоты. min-height
+    применяет правило если высота области просмотра больше значения, указанного
+    в запросе, max-height — высота области просмотра которого меньше значения,
+    указанного в запросе.
+
+-

+ 249 - 0
05_examples.md

@@ -0,0 +1,249 @@
+Вёрстка (HTML/CSS) - компонентная вёрстка
+=========================================
+
+
+**Компонентная верстка** - создание малых и независимых компонентов, которые
+могут быть применены в разных местах. Многократно используемый
+компонент CSS может размещаться в различных частях дерева DOM и не требует
+использования только определенных типов элементов.
+
+Компоненты должны иметь все необходимое для определенной части пользовательского
+интерфейса и фокусироваться на одном элементе. Каждый компонент должен быть
+изолирован, то есть он должен быть независим от других компонентов.
+
+
+Примеры компонентов html/css:
+
+
+1 Navbar with dropdown:
+-----------------------
+
+
+**html:**
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+<nav id="nav">
+	<ul class="main-nav">
+		<li>
+			<a href="#">Main-item 01</a>
+			<ul class="dropdown">
+				<li><a href="#">Sub-item 01</a></li>
+				<li><a href="#">Sub-item 02</a></li>
+				<li><a href="#">Sub-item 03</a></li>
+				<li><a href="#">Sub-item 04</a></li>
+			</ul>
+		</li>
+		<li><a href="#">Main-item 02</a></li>
+		<li><a href="#">Main-item 03</a></li>
+		<li><a href="#">Main-item 04</a></li>
+	</ul>
+</nav>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+**css:**
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.main-nav {
+	font-size: 0;
+	line-height: 0;
+	border-right: 2px solid #fff;
+}
+
+.main-nav>li {
+	position: relative;
+	display: inline-block;
+	vertical-align: top;
+	font-size: 16px;
+	line-height: 1;
+	border-left: 2px solid #fff;
+}
+
+.main-nav>li:hover .dropdown {
+	opacity: 1;
+	visibility: visible;
+}
+
+
+.main-nav>li:hover >a {
+	color: #fff;
+	background: #14141f;
+}
+
+.main-nav>li>a {
+	display: block;
+	color: #fff;
+	padding: 20px 30px;
+	transition: background .5s ease;
+}
+
+.main-nav a:hover {
+	color: #fff;
+	background: #14141f;
+}
+
+.dropdown {
+	position: absolute;
+	z-index: 10;
+	left: 0;
+	top: 100%;
+	width: 100%;
+	background: #f2f2f2;
+	border: 2px solid #fff;
+	opacity: 0;
+	visibility: hidden;
+	transition: opacity .5s ease;
+}
+
+.dropdown>li {
+	border-bottom: 1px solid #fff;
+}
+
+.dropdown>li:last-child {
+	border-bottom: 0;
+}
+
+.dropdown>li>a {
+	display: block;
+	padding: 10px 15px;
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+2 Fade gallery:
+---------------
+
+
+**html:**
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+<div class="gallery">
+	<div class="slideset">
+		<div class="slide active">
+			<img src="images/img-slide01.jpg" alt="slide">
+		</div>
+		<div class="slide">
+			<img src="images/img-slide01.jpg" alt="slide">
+		</div>
+		<div class="slide">
+			<img src="images/img-slide01.jpg" alt="slide">
+		</div>
+		<div class="slide">
+			<img src="images/img-slide01.jpg" alt="slide">
+		</div>
+	</div>
+</div>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+**css:**
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.gallery {
+	position: relative;
+}
+
+.gallery .slide {
+	position: absolute;
+	z-index: -1;
+	top: 0;
+	left: 0;
+	width: 100%;
+	height: 100%;
+	opacity: 0;
+	transition: opacity 0.5s ease;
+}
+
+.gallery .slide.active {
+	position: relative;
+	z-index: 2;
+	opacity: 1;
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+3 Open/close:
+-------------
+
+
+**html:**
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+<div class="collapse-wrap active">
+    <div class="collapse-head">
+	<button type="button" class="opener">Open info</button>
+    </div>
+    <div class="collapse-body">
+        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit...</p>
+    </div>
+</div>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+**css:**
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.collapse-wrap .collapse-body {
+	display: none;
+}
+
+.collapse-wrap.active .collapse-body {
+	display: block;
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+
+4 Forms:
+--------
+
+
+**html:**
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+<form action="#" class="form-wrap">
+	<div class="form-col">
+		<input type="text" placeholder="Name">
+	</div>
+	<div class="form-col">
+		<input type="email" placeholder="Email">
+	</div>
+	<div class="form-col">
+		<input type="password" placeholder="Password">
+	</div>
+	<button type="submit">Submit</button>
+</form>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+**css:**
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.form-wrap .form-col {
+	margin-bottom: 15px;
+}
+
+.form-wrap input {
+	display: inline-block;
+	vertical-align: top;
+	width: 100%;
+	border: 1px solid #000;
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+

BIN
images/01.jpg


BIN
images/dom1.png


BIN
images/inline.jpg


BIN
images/nav.png


BIN
images/padding.jpg


BIN
images/path.png


BIN
images/tags_preview.png