38
OOCSS Monday, February 25, 13

OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

Embed Size (px)

DESCRIPTION

В гостях у Tech Hangout Юрий Артюх - специалист по верстке с многолетним стажем, «зачинщик» многих украинских мероприятий о веб-технологиях, организатор площадки для обмена опытом среди веб-профессионалов Smartme. * Tech Hangout – мероприятие, организованное разработчиками для разработчиков с целью обмена знаниями и опытом. Подобные встречи проводятся еженедельно по средам с 12:00 до 13:00 и охватывают исключительно инженерные темы. Формат данного ивента подразумевает под собой 30 минутный доклад на ранее определенную тему, и такую же по продолжительности дискуссию в формате круглого стола. Если у вас есть неутомимое рвение к новым знаниям, профессиональному росту, или же вы хотите поделиться своим опытом - добро пожаловать в Hangout Club! Присоединяйтесь к обсуждению - https://www.facebook.com/groups/techhangout/ Читайте нас на - http://hangout.innovecs.com/

Citation preview

Page 1: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

OOCSS

Monday, February 25, 13

Page 2: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

Избегать двойников

«у нас уже есть

похожий элемент»

Heading 1Heading 2Heading 3

Heading 4Heading 5

HEADING 6

Monday, February 25, 13

Page 3: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

Location-dependent

Monday, February 25, 13

Page 4: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

function square()

Monday, February 25, 13

Page 5: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

function square()

Monday, February 25, 13

Page 6: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

это неправильно

Monday, February 25, 13

Page 7: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

но в CSS это постоянно

Monday, February 25, 13

Page 8: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

Заголовок не должен стать заголовком в другой части страницы

Monday, February 25, 13

Page 9: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

Плохо

• В новых модулях заголовок будет без стиля

• Надо будет снова его стилизовать - усилия

.module1 h3 {color:red}

.weathermodule2 h3{color:blue}

Monday, February 25, 13

Page 10: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

Лучше, но

• не сможем использовать все стили в одном модуле

• трудно сделать зеленый заголовок внутри модуля

• Красный и синий нельзя сделать вне модулей

h3 {color:green;}

.module1 h3 {color:red}

.weathermodule h3{color:blue}

Monday, February 25, 13

Page 11: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

А можно так

• Стили по умолчанию есть

• Гибкость, предсказуемость и семантика <h3 class="h1"></h3>

.h1,h1 {}

.h2,h2 {}

.h3,h3 {}

.h4,h4 {}

.h5,h5 {}

.h6,h6 {}

Monday, February 25, 13

Page 12: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

Избегать CSS для тагов

• Если только это не стили по умолчанию

div {}

ul {}

.module ul {}

Monday, February 25, 13

Page 13: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

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

• Сохранять примерно один вес

html .content .module .ul {}

.module .block {}

Monday, February 25, 13

Page 14: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

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

• Сохранять примерно один вес

html .content .module .ul {}

.module .block {}

Monday, February 25, 13

Page 15: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

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

• Сохранять примерно один вес

html .content .module .ul {}

.module .block {}

.weather .ul {}

.module .block {}

Monday, February 25, 13

Page 16: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

Избегать контекста

• Модифицировать сам объект

.main ul {}

.sidebar ul{}

Monday, February 25, 13

Page 17: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

Избегать контекста

• Модифицировать сам объект

.main ul {}

.sidebar ul{}

Monday, February 25, 13

Page 18: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

Избегать контекста

• Модифицировать сам объект

.main ul {}

.sidebar ul{}

.mainNav {}

.subNav {}

Monday, February 25, 13

Page 19: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

Вёрстка по модулям

• Разбить сайт на области и верстать их как отдельные элементы «в себе»

Monday, February 25, 13

Page 20: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

Monday, February 25, 13

Page 21: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

Monday, February 25, 13

Page 22: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

Monday, February 25, 13

Page 23: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

Monday, February 25, 13

Page 24: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

Monday, February 25, 13

Page 25: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

Monday, February 25, 13

Page 26: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

Monday, February 25, 13

Page 27: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

Раньше так:div#myBlock

Monday, February 25, 13

Page 28: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

Обычный блок

#myBlock h2{...}

#myBlock ul{...}

#myBlock p{...}

#myOtherBlock ul{...}

#myOtherBlock li{...}

ul

p

h2

div#myBlock

Monday, February 25, 13

Page 29: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

Спустя неделю

«Ой, а давайте в погоде сделаем список как в блоке аналитики?»

«А еще, нам нужно два таких блока, только с разным фоном»

Monday, February 25, 13

Page 30: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

Fail

#myModule h2{...}

#myModule span{...}

#myModule #saleModule{...}

#myOtherModule ul{...}

#myOtherModule li{...}

ul

p

h2

Приведет к грязному коду

Monday, February 25, 13

Page 31: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

Правильный подход

.block{...}

.heading{...}

.list{...}

.more{...}

.list

.more

.heading

.block

Monday, February 25, 13

Page 32: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

Модифицируем блоки

Monday, February 25, 13

Page 33: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

Модифицируем блоки

ul.list ul.list .with-image

Monday, February 25, 13

Page 34: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

И?

Monday, February 25, 13

Page 35: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

ul.list

.more

h2.heading h2.heading

ul.list

h2.heading

ul.list .with-image

.more

ul.switcher

Monday, February 25, 13

Page 36: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

Facebook

• Очень много простых стилей• Комбинации классов• Вы еще думаете о семантике классов? :)

Monday, February 25, 13

Page 37: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

Monday, February 25, 13

Page 38: OOCSS – JURIY ARTYUKH for Tech Hangout - Tech Hangout #20 - 2013.04.03

Читать

• https://github.com/stubbornella/oocss/wiki

Monday, February 25, 13