You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Oct 18, 2018. It is now read-only.
Copy file name to clipboardExpand all lines: README.md
+28-19Lines changed: 28 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,10 +2,10 @@
2
2
3
3
*Наиболее разумный подход к CSS и Sass*
4
4
5
-
## Содержание
5
+
<h2id="table-of-contents">Содержание</h2>
6
6
7
7
1.[Терминология](#terminology)
8
-
-[Правила декларации](#rule-declaration)
8
+
-[Объявление правил](#rule-declaration)
9
9
-[Селекторы](#selectors)
10
10
-[Свойства](#properties)
11
11
1.[CSS](#css)
@@ -22,11 +22,11 @@
22
22
-[Миксины](#mixins)
23
23
-[Extend directive](#extend-directive)
24
24
-[Вложенные селекторы](#nested-selectors)
25
-
1.[Переводы](#translation)
25
+
1.[Переводы](#translations)
26
26
27
-
## Терминология
27
+
<h2id="terminology">Терминология</h2>
28
28
29
-
### Объявление правил
29
+
<h3id="rule-declaration">Объявление правил</h3>
30
30
31
31
"Объявление правил" это имя данное селектору (или группе селекторов) с сопутствующими ему свойствами. Например:
32
32
@@ -37,7 +37,7 @@
37
37
}
38
38
```
39
39
40
-
### Селекторы
40
+
<h3id="selectors">Селекторы</h3>
41
41
42
42
В объявлении правил, "селекторы", это части которые определяют к какому элементу DOM дерева будут применены правила стилей. Селекторы могут соответствовать HTML элементу, а так-же классу элемента, ID или любому другому атрибуту этого элемента. Вот несколько примеров:
43
43
@@ -52,7 +52,7 @@
52
52
}
53
53
```
54
54
55
-
### Свойства
55
+
<h3id="properties">Свойства</h3>
56
56
57
57
И наконец свойства, которые придают выбранным элементам их стиль. Свойства объявляются в виде пары "ключ-значение" и объявления правил могут содержать одно или несколько свойств. Объявление свойств может выглядеть так:
58
58
@@ -66,7 +66,7 @@
66
66
67
67
## CSS
68
68
69
-
### Форматирование
69
+
<h3id="formatting">Форматирование</h3>
70
70
71
71
* Используйте 2 пробела для отступов.
72
72
* Предпочитайте подчеркивание CamelCase'у в именах классов.
* Рекомендуется писать комментарии в отдельные строки. Старайтесь избегать комментариев в конце строки.
@@ -116,7 +116,7 @@
116
116
- Использование z-index
117
117
- Совместимость с браузерами или CSS-хаки
118
118
119
-
### Объектно-ориентированный CSS и БЭМ
119
+
<h3 id="oocss-and-bem">Объектно-ориентированный CSS и БЭМ</h3>
120
120
121
121
Мы рекомендуем комбинировать Объектно-ориентированный CSS и БЭМ по следующим причинам:
122
122
@@ -167,13 +167,13 @@ function ListingCard() {
167
167
* `.ListingCard__title` является "элементом" и представляет дочерний компонент `.ListingCard` который позволяет составить блок в целом.
168
168
* `.ListingCard--featured` является "модификатором" и представляет разные состояния `.ListingCard`.
169
169
170
-
### Селекторы по ID
170
+
<h3 id="id-selectors">Селекторы по ID</h3>
171
171
172
172
While it is possible to select elements by ID in CSS, it should generally be considered an anti-pattern. ID selectors introduce an unnecessarily high level of [specificity](https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity) to your rule declarations, and they are not reusable.
173
173
Возможность выбирать элементы по ID в CSS является, как правило, плохой практикой. ID селекторы предоставляют неоправданно высокий уровень специфичности и невозможность многоразового использования.
174
174
Более подробная информация по этому вопросу: [Статья CSS Wizardry](http://csswizardry.com/2014/07/hacks-for-dealing-with-specificity/)
175
175
176
-
### JavaScript хуки
176
+
<h3 id="javascript-hooks">JavaScript хуки</h3>
177
177
178
178
Избегайте использования одинаковых имён классов в CSS и JavaScript. Использование одинаковых имён классов может привести, как минимум, к трате времени при рефакторинге, и как максимум к боязне разработчика сломать функционал вводом изменений.
179
179
@@ -183,7 +183,7 @@ While it is possible to select elements by ID in CSS, it should generally be con
183
183
<button class="btn btn-primary js-request-to-book">Request to Book</button>
184
184
```
185
185
186
-
### Border
186
+
<h3 id="border">Границы</h3>
187
187
188
188
Use `0` instead of `none` to specify that a style has no border.
189
189
@@ -205,12 +205,12 @@ Use `0` instead of `none` to specify that a style has no border.
205
205
206
206
## Sass
207
207
208
-
### Синтаксис
208
+
<h3 id="syntax">Синтаксис</h3>
209
209
210
210
* Всегда используйте `.scss` синтаксис, и никогда, оригинальный `.sass` синтаксис.
211
211
* Упорядочивайте обычный CSS и `@include`-объявления логически.
@@ -254,19 +254,26 @@ Use `0` instead of `none` to specify that a style has no border.
254
254
}
255
255
```
256
256
257
-
### Переменные
257
+
<h3 id="variables">Переменные</h3>
258
258
259
259
Prefer dash-cased variable names (e.g. `$my-variable`) over camelCased or snake_cased variable names. It is acceptable to prefix variable names that are intended to be used only within the same file with an underscore (e.g. `$_my-variable`).
260
260
Отдавайте предпочтение именам переменных разделенных тире (например `$my-variable`). Допускается использование подчеркивания в виде префикса для имён которые будут использоваться в пределах одного файла (например `$_my-variable`).
261
-
### Миксины
261
+
262
+
263
+
<h3 id="mixins">Миксины</h3>
262
264
263
265
Mixins should be used to DRY up your code, add clarity, or abstract complexity--in much the same way as well-named functions. Mixins that accept no arguments can be useful for this, but note that if you are not compressing your payload (e.g. gzip), this may contribute to unnecessary code duplication in the resulting styles.
264
266
Миксины должны использоваться для поддержания чистоты и ясности кода, или абстрактной сложности, во многом так же, как и хорошо названные функции. Миксины не принимающие никаких аргументов могут быть полезны для этого, но нужно иметь в виду что если вы не сжимаете свои файлы (например gzip), это может привести к лишнему повторению кода.
`@extend` should be avoided because it has unintuitive and potentially dangerous behavior, especially when used with nested selectors. Even extending top-level placeholder selectors can cause problems if the order of selectors ends up changing later (e.g. if they are in other files and the order the files are loaded shifts). Gzipping should handle most of the savings you would have gained by using `@extend`, and you can DRY up your stylesheets nicely with mixins.
268
272
Использование `@extend` необходимо избегать из-за его неинтуитивного поведения и потенциальной опасности в поведение, особенно при использование вместе с вложенными селекторами. Даже *допилить* селекторов верхнего уровня может создать проблемы, если в будущем будет изменён порядок селекторов. Сжатие должно обрабатывать большую часть сбережений вы получили бы с помощью *допилить*.
**Do not nest selectors more than three levels deep!**
272
279
**Вложенные селекторы не должны быть глубже трёх вложений**
@@ -296,7 +303,9 @@ Again: **never nest ID selectors!**
296
303
И вновь: **никогда не используйте ID селекторы!**
297
304
If you must use an ID selector in the first place (and you should really try not to), they should never be nested. If you find yourself doing this, you need to revisit your markup, or figure out why such strong specificity is needed. If you are writing well formed HTML and CSS, you should **never** need to do this.
298
305
Если вы должны использовать ID селектор (вы действительно должно постараться этого не делать), он никогда не должен быть вложен. Если вы обнаружили это в своём коде, вам нужно пересмотреть разметку, или выяснить, почему нужна такая сильная специфика. Если вы пишете хорошо сформированные HTML и CSS, вы **никогда** не должны делать это.
299
-
## Перевод
306
+
307
+
308
+
<h2 id="translations">Переводы</h2>
300
309
301
310
This style guide is also available in other languages:
302
311
Этот гид по стилю так-же доступен в других языках:
0 commit comments