SlideShare a Scribd company logo
Стажировка-2014
Code conventions
and best practices
Стажировка-2014
Красивая картинка о том, каким
должен быть ваш код
http://rhr.me/pres/mcss/
Стажировка-2014
Имена CSS селекторов
Стажировка-2014
Имена CSS селекторов
<div class=‘user_login’>
<div class=‘userLogin’>
<div class=‘UserLogin’>
Правильно: <div class=‘user-login’>
Стажировка-2014
Имена CSS селекторов
Ещё примеры неудачных селекторов:
form#tb3
div#divmenu
.row1
.row2
#Menu2
Стажировка-2014
Имена CSS селекторов
Хорошей практикой является
использование соглашений, принятые
в языке программирования/разметки.
Стажировка-2014
Имена CSS селекторов
… или соглашений, принятых в
команде
Стажировка-2014
Пример CSS классов по
Яндекс БЭМ
class=“sub-menu__search search_state_current”
Стажировка-2014
Методологии, стайлайды
Yandex БЭМ (Яндекс)
MCSS (Одноклассники)
SMACSS
Google, Github, Mozilla
style guides
WC3 Recommendations
Idiomatic CSS, JSLint, etc…
Стажировка-2014
Руководство по
форматированию CSS
http://habrahabr.ru/post/149986/
http://codeguide.co/
Стажировка-2014
Префиксы JS
<form class=‘feedback’>
css:
.feedback { margin: 5px; }
.js:
$(‘.feedback’).click(function(){
// code
})
Стажировка-2014
Префиксы JS
<form class=“feedback js-popup”>
css:
.feedback { margin: 5px; }
.js:
$(‘.js-popup’).click(function({
// code
})
Стажировка-2014
inline-css и js
<!-- bad -->
<div style=“float: left;”>
<p style=“color: black;”>
</div>
Стажировка-2014
inline-css и js
•HTML код трудночитаем
•Дублирование стилей для разных
элементов, дублирование стилей для
разных html-файлов.
•Сложно переопределить свойство:
стили, указанные в атрибуте style
имеют наивысший приоритет.
Стажировка-2014
Приоритет применения стилей к
элементам
.html:
<div class=“cool” style=“color: red;”>
.css:
.cool {
color: black;
}
Стажировка-2014
Производительность CSS
селекторов
section .news a {
color: red;
}
<section>
<div class=“news”>
<a class=“social” href=“#”>…</a>
</div>
</section>
<a href=“#”>…</a>
a.social {
color: red;
}
Стажировка-2014
Производительность CSS
селекторов
Браузер выполняет поиск элементов
справа налево:
section ⟵ .news ⟵ a
Стажировка-2014
Производительность CSS
селекторов
Поэтому, нужно стараться избегать
селекторов, где целевой объект – тэг
без класса или id
.news a.social
лучше, чем
.news a и .news *
Стажировка-2014
Особенности italic шрифтов
Важно: Если рукописное начертание
шрифта отсутствует, браузер отрендерит
italic начертание путём наклона Normal-
версии шрифта.
Стажировка-2014
Особенности italic шрифтов
Важно: Если рукописное начертание
шрифта отсутствует, браузер отрендерит
italic начертание путём наклона Normal-
версии шрифта.

More Related Content

PPTX
Спецкурс 2014, занятие 9 (2 часть). Code conventions and best practices
PDF
скорость загрузки
PDF
Робота з CSS. Методології, інструменти, оптимізація
PDF
Css Intro. Vlad Savitsky
PDF
Стажировка 2015. Дизайн. Занятие 5. Адаптивный web-дизайн
PDF
Курс Java-2016. Занятие 06. Файлы и ввод-вывод
PPTX
Стажировка-2014, занятие 8. Общая архитектура web-приложений, web frameworks
PDF
Стажировка 2015. Разработка. Занятие 9. BEM
Спецкурс 2014, занятие 9 (2 часть). Code conventions and best practices
скорость загрузки
Робота з CSS. Методології, інструменти, оптимізація
Css Intro. Vlad Savitsky
Стажировка 2015. Дизайн. Занятие 5. Адаптивный web-дизайн
Курс Java-2016. Занятие 06. Файлы и ввод-вывод
Стажировка-2014, занятие 8. Общая архитектура web-приложений, web frameworks
Стажировка 2015. Разработка. Занятие 9. BEM

Viewers also liked (20)

PDF
Стажировка 2015. Дизайн. Занятие 1. История дизайна, тренды 2015, логотипы.
PPTX
Стажировка-2014, занятие 6 (часть 2). Транзакции в БД
PPTX
Стажировка-2015. Разработка. Занятие 12. Транзакции в БД, работа с БД из прил...
PPTX
Стажировка-2014, занятие 5. Базы данных
PPTX
Стажировка-2015. Разработка. Занятие 8. Абстракции, именование,документирование
PPTX
Стажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотесты
PPTX
Стажировка-2014, занятие 6 (часть 1). Web-приложения
PPTX
Стажировка-2014, занятие 8. Обзор Rails framework (Ruby)
PPTX
Стажировка-2015. Разработка. Занятие 4. Системы контроля версий
PDF
Стажировка 2015. Разработка. Занятие 6. Адаптивная верстка
PPTX
Стажировка-2015. Разработка. Занятие 10 (часть 2). Исключения и логи.
PPTX
Стажировка-2014, занятие 2 (часть 2). Исключения и логи
PDF
Стажировка-2015. Дизайн. Занятие 4 (2 часть). Цвет в web-дизайне
PPTX
Стажировка-2014, занятие 3. Тест-кейсы, ручное и автоматическое тестирование.
PPT
Стажировка-2014, занятие 8. Обзор Sails framework (Node.js)
PDF
Стажировка 2015. Разработка. Занятие 5. Использование nginx
PPTX
Спецкурс 2014, занятие 10. Lean startup
PPTX
Спецкурс 2014, занятие 10. Lean startup
PPTX
Стажировка-2014, занятие 10. Бизнес-модели и Lean startup.
PPTX
Стажировка-2015. Разработка. Занятие 1. Основы языков разметки.
Стажировка 2015. Дизайн. Занятие 1. История дизайна, тренды 2015, логотипы.
Стажировка-2014, занятие 6 (часть 2). Транзакции в БД
Стажировка-2015. Разработка. Занятие 12. Транзакции в БД, работа с БД из прил...
Стажировка-2014, занятие 5. Базы данных
Стажировка-2015. Разработка. Занятие 8. Абстракции, именование,документирование
Стажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотесты
Стажировка-2014, занятие 6 (часть 1). Web-приложения
Стажировка-2014, занятие 8. Обзор Rails framework (Ruby)
Стажировка-2015. Разработка. Занятие 4. Системы контроля версий
Стажировка 2015. Разработка. Занятие 6. Адаптивная верстка
Стажировка-2015. Разработка. Занятие 10 (часть 2). Исключения и логи.
Стажировка-2014, занятие 2 (часть 2). Исключения и логи
Стажировка-2015. Дизайн. Занятие 4 (2 часть). Цвет в web-дизайне
Стажировка-2014, занятие 3. Тест-кейсы, ручное и автоматическое тестирование.
Стажировка-2014, занятие 8. Обзор Sails framework (Node.js)
Стажировка 2015. Разработка. Занятие 5. Использование nginx
Спецкурс 2014, занятие 10. Lean startup
Спецкурс 2014, занятие 10. Lean startup
Стажировка-2014, занятие 10. Бизнес-модели и Lean startup.
Стажировка-2015. Разработка. Занятие 1. Основы языков разметки.
Ad

More from 7bits (20)

PDF
Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап?
PDF
Гудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофта
PDF
Гудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакать
PDF
Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи
PDF
Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE
PDF
Goodbye, IT-loft! Тараканов Алексей: Идеология в IT
PPTX
Курс Java-2016. Занятие 13. Spring
PDF
Курс Java-2016. Занятие 12. DBMS, JDBC
PDF
Курс Java-2016. Занятие 11. Servlets, JSP
PDF
Курс Java-2016. Занятие 10. Reflection, mock
PDF
Курс Java-2016. Занятие 09. Web
PDF
Курс Java-2016. Занятие 08. Итераторы, многопоточность
PDF
Курс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекции
PPTX
Курс Java-2016. Занятие 05. Тестирование и Java
PDF
Курс Java-2016. Занятие 04 (часть 2). Git и GitHub
PDF
Курс Java-2016. Занятие 04 (часть 1). Еще немного про Generics
PPTX
курс Java 2016. занятие 03. интерфейсы, generic, исключения
PPTX
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
PPTX
Курс Java-2016. Занятие 01. Введение в Java как технологию
PPTX
Спецкурс-2015. Занятие 05. Системы контроля версий
Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап?
Гудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофта
Гудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакать
Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи
Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE
Goodbye, IT-loft! Тараканов Алексей: Идеология в IT
Курс Java-2016. Занятие 13. Spring
Курс Java-2016. Занятие 12. DBMS, JDBC
Курс Java-2016. Занятие 11. Servlets, JSP
Курс Java-2016. Занятие 10. Reflection, mock
Курс Java-2016. Занятие 09. Web
Курс Java-2016. Занятие 08. Итераторы, многопоточность
Курс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекции
Курс Java-2016. Занятие 05. Тестирование и Java
Курс Java-2016. Занятие 04 (часть 2). Git и GitHub
Курс Java-2016. Занятие 04 (часть 1). Еще немного про Generics
курс Java 2016. занятие 03. интерфейсы, generic, исключения
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
Курс Java-2016. Занятие 01. Введение в Java как технологию
Спецкурс-2015. Занятие 05. Системы контроля версий
Ad

Стажировка-2014, занятие 9. Code conventions and best practices