Артем Маркушев — HTML и CSS по кирпичикам. Детали.

69
HTML & CSS По кирпичикам Докладчик: Артем Маркушев Дата: 6 июля 2015 года

Transcript of Артем Маркушев — HTML и CSS по кирпичикам. Детали.

Page 1: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

HTML & CSSПо кирпичикам

Докладчик: Артем МаркушевДата: 6 июля 2015 года

Page 2: Артем Маркушев — HTML и CSS по кирпичикам. Детали.
Page 3: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

<div class="wide_column_wrap"> <div class="wide_column" id="wide_column"> <div class="page_block" id="">

<div id="page_info_wrap" class="page_info_wrap"> <div class="page_top"> <div class="profile_online"><div id="profile_online_lv" style="display: none;">Online<b

class="mob_onl profile_mob_onl unshown" id="profile_mobile_online" onmouseover="mobileOnlineTip(this, {mid: cur.oid, right: 1})" onclick="mobilePromo(); "></b></div>

<div id="profile_time_lv"></div> </div>

<div class="page_name">Павел Дуров<a href="/verify" class="page_verified" onmouseover="pageVerifiedTip(this, {mid: 1})"></a></div> <div class="page_current_info" id="page_current_info">

<span class="current_text">&#36947;&#24503;&#32147;</span></div></div>...

А вот так сайт выглядит на самом деле

Page 4: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

HTMLHyperText Markup LanguageСтруктура документа

Ответ на вопрос «Что?»

Page 5: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

HTMLСтруктура декларативного языка

<html><head><title>Hello, World</title></head><body>…</body>

</html>

Page 6: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

HTMLСтруктура декларативного языка

<body>Это тег. Тег – это контейнер.

Page 7: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

HTMLСтруктура декларативного языка

<p>I’m a paragraph</p>Это контент тега.

Page 8: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

HTMLСтруктура декларативного языка

<div> <img src=“image.png” /></div>

А это тег в виде контента другого тега.

Page 9: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

HTMLСтруктура декларативного языка

<a href="#target">…</a>У тегов есть атрибуты.Атрибуты задают параметры.

Page 10: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

DOMDocument Object ModelИнтерпретация HTML браузером

Ответ на вопрос «Что происходит?»

Page 11: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

HTMLИнтерпретация браузером

Page 12: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

HTMLИнтерпретация браузером

WebKit Gecko EdgeHTMLранее - Trident

BlinkранееChrome – WebKitOpera - Presto

Page 13: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSCascading Style Sheets

Вид документа

Ответ на вопрос «Как (выглядит)?»

Page 14: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSСтруктура декларативного языка

body {width: 100%;height: auto;background-color: #42535b;

}

Page 15: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSСтруктура декларативного языка

body {width: 100%;

}

Это селектор.

Page 16: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSСтруктура декларативного языка

body {width: 100%;

}

Это свойство.

Page 17: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSСтруктура декларативного языка

body {width: 100%;

}

Это значение свойства.

Page 18: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSТипы селекторов

bodyСелектор тега.Просто название.

Page 19: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSТипы селекторов

.activeСелектор класса.Точка перед именем.

<li class="active">…

Page 20: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSТипы селекторов

#uniqueСелектор ID.Решетка перед именем.

<div id="unique">…

Page 21: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

#id { … }Используйте как можно режеА лучше вообще никогда

Page 22: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSТипы селекторов

[href]Селектор атрибута.Внутри квадратных скобок.

<a href="">…

Page 23: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSТипы селекторов

[href="…"], [href^="…"], [href~="…"], …Селекторы по значению атрибута.Тысячи их.

Page 24: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSТипы селекторов

*Селектор всего.

Page 25: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSТипы селекторов

<div><p></p><section><p></p></section><section><p></p></section>

</div>

Page 26: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSТипы селекторов

div, p { … }Множественный селектор.Разделяется запятой.

Page 27: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSТипы селекторов

<div><p></p><section><p></p></section><section><p></p></section>

</div>

Page 28: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSТипы селекторов

div p { … }Селектор непрямого потомка.Разделяется пробелом.

Page 29: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSТипы селекторов

<div><p></p><section><p></p></section><section><p></p></section>

</div>

Page 30: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSТипы селекторов

div > p { … }Селектор прямого потомка.Разделяется знаком «больше».

Page 31: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSТипы селекторов

<div><p></p><section><p></p></section><section><p></p></section>

</div>

Page 32: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSТипы селекторов

p + section { … }Селектор следующего соседа.Разделяется знаком «плюс».

Page 33: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSТипы селекторов

<div><p></p><section><p></p></section><section><p></p></section>

</div>

Page 34: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSТипы селекторов

p ~ section { … }Селектор всех соседей после тега.Разделяется знаком «тильда».

Page 35: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSТипы селекторов

<div><p></p><section><p></p></section><section><p></p></section>

</div>

Page 36: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSТипы селекторов

:hover a:hover

Псевдокласс.Двоеточие перед типом.

Page 37: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSТипы селекторов

:before div:before

Псевдоэлемент.Двоеточие перед типом.

Page 38: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSТипы селекторов

span.icon:before {content: "";

}Не укажете контент – не будет.

Page 39: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSCascading Style Sheets

Что такое «каскады»

Page 40: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSКаскады

ul.menu > li a:hover:before { … }nav.primary li.nav-item.active { … }.container > p, .container > h1 { … }И тому подобное.Это каскады – зависимости.

Page 41: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSВес селекторов

#ID.class, [attribute] tag

У разных типов селекторов – разный «вес».

Page 42: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSВес селекторов

!importantstyle=""#ID.class, [attribute]tag*

Селекторов больше, чем кажется.

Page 43: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSВес селекторов

0 , 0 , 0 , 0 , 0 !important style id class tag

Матрица распределения «весов».

Page 44: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSВес селекторов

0 , 0 , 0 , 0 , 1 !important style id class tag

div { … }

Page 45: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSВес селекторов

0 , 0 , 0 , 0 , 2 !important style id class tag

div a { … }

Page 46: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSВес селекторов

0 , 0 , 0 , 1 , 2 !important style id class tag

div a.active { … }

Page 47: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSВес селекторов

0 , 0 , 1 , 1 , 2 !important style id class tag

div#first a.active { … }

Page 48: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSВес селекторов

0 , 0 , 1 , 0 , 2 !important style id class tag

div#first a { … }

Page 49: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSВес селекторов

0 , 1 , 0 , 0 , 0 !important style id class tag

<a href=“#” style=“…”>…</a>

Page 50: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSВес селекторов

1 , 0 , 0 , 0 , 0 !important style id class tag

a { width: 100% !important; }

Page 51: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSВес селекторов

1 , 1 , 0 , 0 , 0 !important style id class tag

a { width: 100% !important; }<a href=“#” style=“width: auto !important”>…</a>

Page 52: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSВес селекторов

!important > style > #id > .class = [attr] > tag > *

Зависимость надо помнить.

Page 53: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

!importantНе используйте никогда

Вообще никогда

Даже под страхом смерти

Page 54: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSCascading Style Sheets

Свойства и значения

Page 55: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSСвойства

width: 100%;

Page 56: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSСвойства

{propertyName}: {value}

Page 57: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSСвойства

body {width: 100%;padding: 10px 5% 20px;background: url(image.png) no-repeat center

center;font-family: ‘Open Sans’, Arial, sans-serif;

}

Page 58: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSСвойства

-webkit-{property}: …; -moz-{property}: …; -ms-{property}: …; -o-{property}: …;

Браузеро-зависимые селекторы. Анахронизм, но пригодится.

Page 59: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSСвойства

input::-webkit-placeholder {…

}

Могут быть в самых неожиданных местах.

Page 60: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSCascading Style Sheets

Дополнительно

Page 61: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSДополнительно

Методологии

_bemOOCSSSMACCSи много других страшных слов

Page 62: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSДополнительно

Препроцессоры

LESSSASSStylusи много других страшных слов

Page 63: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSДополнительно

Препроцессоры

.container {…

.element {a {&:hover { … } }

p { … }

&.active { … }}

}

Page 64: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSДополнительно

Препроцессоры

.container {…

.element {a {&:hover { … } }

p { … }

&.active { … }}

}

.container { … }

.container .element a:hover { … }.container .element p { … }.container .element.active { … }

>

Page 65: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSДополнительно

Препроцессоры

.mixin (@param){some: func(@param,20%);

}

.useful-class {.mixin (20);

}

.useless-class {.mixin (30);

}

Page 66: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

CSSДополнительно

Препроцессоры

.mixin (@param){some: func(@param,20%);

}

.useful-class {.mixin (20);

}

.useless-class {.mixin (30);

}

.useful-class {some: 22;

}

.uselessclass {some: 23;

}

>

Page 67: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

ЭтоКонец

htmlbook.ruhtmlacademy.ru

Page 68: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

ЭтоКонец

Вопросы?

Page 69: Артем Маркушев — HTML и CSS по кирпичикам. Детали.

artfield.mevk.com/artfieldfest

МинутаРекламы

kubikami.landvk.com/kubikami

flo.one