Путь HTML/CSS
Это список ссылок и заданий, которые помогут тебе изучить языки HTML/CSS на достаточном уровне. HTML и CSS используется для верстки (создания) веб-страничек — тех самых, которые ты видишь в браузере когда открываешь какой-то сайт. Задания несложные и надо решить их все.
Станешь ли ты полноценным верстальщиком, пройдя этот путь? Скорее нет, чем да. С одной стороны, ты научишься верстать веб-страницы, с другой стороны от верстальщиков в большинстве случаев требуют дополнительно знать язык программирования Javascript (и популярные библиотеки вроде jQuery, jQuery UI). Так что воспринимай это как первую (короткую) половину пути.
Время, требуемое на изучение материала и решение всех заданий зависит от тебя, ориентировочно это занимает от 2 до 8 недель. В конце тебя ждет главное задание — сверстать страницу из макета.
HTML — язык разметки текста. Он позволяет добавить в текст специальные коды-теги (которые выглядят примерно так: <p>
), которые разбивают его на части и позволяют вставлять дополнительные элементы вроде изображений. Вот пример HTML-кода:
<h1>Это заголовок</h1>
<p>
Это абзац текста, в котором содержится
<a href="http://google.com/">ссылка на Гугл</a>.
После текста идет картинка:
</p>
<img src="http://lorempixel.com/200/150/cats/" alt="Красивая картинка">
А вот как этот код отображает браузер (посмотреть на jsfiddle). Согласись, пока ничего сложного? Ссылка в теге img
— это ссылка на картинку.
CSS — это язык правил, задающих, как отображаются элементы на странице. Каким шрифтом и цветом написан текст, какие у него поля и отступы от краев страниц и соседних абзацев, каким цветом или изображением закрашен фон. Также CSS задает размеры и расположение блоков на странице. Ты можешь располагать элементы вертикально, горизонтально друг за другом, вынести влево или вправо или поместить в указанном месте страницы.
Вот пример CSS-правил, которые я применяю к фрагменту HTML кода выше:
/* Элементы <a> (ссылки) имеют желтый фон */
a { background-color: yellow; }
/* Элемент <h1> (заголовок) написан шрифтом Arial (а если его нет в системе,
то стандартным шрифтом без засечек, sans-serif) лиловым цветом */
h1 { font-family: Arial, sans-serif; color: purple; }
/* Картинка заключена в черную штрихованную рамку шириной 1 пиксель */
img { border: 1px dashed black; }
И вот как это выглядит в браузере (посмотреть на jsfiddle):
После того, как немного изучишь основы, можешь начинать решать задания ниже и параллельно изучать дальше.
Существует 2 версии — HTML4 (старый) и HTML5 (новый). HTML5 по сути расширяет HTML4 так что можешь начать с него.
Не ставь закрывающий слеш в конце тега: <br />
— такое используется в XHTML и XML, но не используется в HTML. В HTML надо писать <br>
.
Любой, кроме блокнота. Sublime Text 3, Notepad++, PhpStorm, TextMate, vim, emacs — любой подойдет. Файлы надо сохранять в кодировке utf-8 без BOM.
Есть 2 специальных плагина, которые помогут тебе печатать код гораздо быстрее. Это Emmet для HTML: http://emmet.io/ и Hayaku для CSS: http://hayakubundle.com/ (англ.).
Самый простой способ просмотреть страницу — сохранить код в файл с расширением .html
и перетащить в окошко браузера. Если же ты хочешь выложить пример в интернет, чтобы все его увидели, используй удобные сервисы (некоторые позволяют прямо в браузере редактировать код и видеть изменения):
<meta charset>
в своем кодеВ браузеры встроен специальный инструмент для отладки страниц - инспектор. Он открывается нажатием Ctrl + Shift + I
(в ИЕ надо жать F12
, в Сафари надо сначала включить инструменты разработчика). Краткий обзор: http://habrahabr.ru/post/143767/
Сверстай изображенные на картинках примеры. Если где-то ширина не указана, она должна зависеть от ширины окна браузера или содержащегося в блоке текста (а не быть жестко заданной). Если где-то не указана ширина отступа/полей, ставь 10px. Цвет блоков должен быть как на картинке (чтобы определить цвет, используй функцию «пипетка» в графическом редакторе, или отдельную программу-пипетку). Размер шрифта выбери сам. Серую рамку верстать не надо.
Никогда не используй CSS-селектор «звездочка» и CSS reset.
Перед тем, как сдать задание, проверь, все ли корректно отображается при изменении ширины окошка браузера.
position
, float
или display
(почему? потому, что без них проще).width
, height
, margin
, padding
, border
, text-align
, background-color
, color
, font
, line-height
, font-weight
, font-style
и боксовую модель: http://htmlbook.ru/samlayout/blochnaya-verstka/blochnaya-modelpoistion
, float
, display
или width
.min-width
, max-width
, min-height
, max-height
<em>
<
, >
, &
в HTML надо записывать с использованием html entity (HTML-мнемоник).<br>
position
и float
(потому что блоки с float
всегда выравниваются по верхнему краю, а позиционированные блоки не выстраиваются друг за другом)display
и vertical-align
и почитай статьи http://htmlbook.ru/samlayout/blochnaya-verstka/strochnye-elementy и http://htmlbook.ru/samlayout/blochnaya-verstka/strochno-blochnye-elementyvertical-align
работает только в 2 случаях: внутри ячейки таблицы и для выравнивания элементов с display: inline
или display: inline-block
в строке. В остальных случаях оно не действует.overflow
- оно имеет побочные эффекты<ul>
, <li>
, <a>
и по желанию <nav>
. Для статьи справа можно использовать <atricle>
float
и clear
и почитать статью http://softwaremaniacs.org/blog/2005/12/01/css-layout-float/width
и height
. Для input
и textarea
они задают внутренние размеры, без паддинга и бордера, для select
и кнопок — внешние.input
2px паддинга и бордер.box-sizing
или задание разной высоты для 2 элементов<form>
<p>
для абзаца и <aside>
для примечанияmargin
на <p>
. Поля задаются с помощью padding
на родительском элементеoverflow
и position
<input type="radio">
)type="radio"
на type="checkbox"
и все должно работать (с той разницей что можно нажать больше одной кнопки)for
и id
(можно вложить input
внутрь label
)label
, input
, i
)label {... }
меняющие вид всех label
на странице.label:active
(на самом деле input:active
)name
Tab
, Shift
+ Tab
, стрелками и переключать пробелом. Попробуй сделать поддержку клавиатурной навигации и в стилизованных кнопках. Подсказка: для этого надо отказаться от display: none
на input
, так как перемещать фокус по скрытым элементам нельзя.Сделай табы (вкладки) на CSS3, как здесь: http://cssdeck.com/labs/full/css-responsive-tabs
@media
input {...}
, меняющие вид всех элементов на странице. Стили не лолжны влиять на элементы внутри содержимого вкладки, там тоже могут быть инпуты, чекбоксы, лабелы.h1
, p
, div
.Tab
или стрелками по чекбоксам)Сверстай макет: http://www.mediafire.com/download/d1j980z595w6owi/pack180-webpaint-home-psd.zip (копия: http://rghost.ru/6L5kMK7q9 http://rghost.ru/58855578 удалено )
id
в селекторах, так как он не должен повторяться и это сильно ограничивает его использование<img>
используется только для картинок в портфолио<h1>
- <h6>
Посмотри CSS-фреймворк Bootstrap 3: http://getbootstrap.com/ Он содержит огромное количество готовых компонент (иконки, меню, выпадающие элементы, группы кнопок, хитрые поля ввода) и часто используется для оформления интерфейсов.
У Bootstrap 3 есть неприятная особенность: он ставит для всех элементов box-sizing: border-box;
что может быть неудобно. Если это мешает, можно использовать 2 версию.
Или стоит, но предварительно взвесив все за и против.
<br />
— правильно будет <br>
. Слеш использовался только в XML и XHTML.<a href="#"
или <a href="javascript:void(0)"
никогда. Для этого есть кнопки или <span>
.*
* { box-sizing: border-box }
(он изменяет размер всех картинок, у которых есть border или padding)