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
Copy file name to clipboardExpand all lines: 2-ui/1-document/08-styles-and-classes/article.md
+30-28Lines changed: 30 additions & 28 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,6 +21,25 @@ elem.style.left = left; // например, '123px', значение вычи
21
21
elem.style.top= top; // например, '456px'
22
22
```
23
23
24
+
Мы также можем установить сразу несколько стилей для элемента, используя свойство `cssText`. Но с ним нужно быть осторожнее, т.к оно может как добавить стили к существующим, так и полностью перезаписать их на новые:
elem.style.cssText *!*+=*/!* `// добавление к существующим стилям elem новых стилей, используем +=
36
+
top: ${top};
37
+
left: ${left};
38
+
`;
39
+
40
+
// если элементу уже заданы стили, которые мы хотим добавить (+=), они будут перезаписаны на новые.
41
+
```
42
+
24
43
В других случаях, например, чтобы сделать текст красным, добавить значок фона -- описываем это в CSS и добавляем класс (JavaScript может это сделать). Это более гибкое и лёгкое в поддержке решение.
25
44
26
45
## className и classList
@@ -82,11 +101,19 @@ elem.style.top = top; // например, '456px'
82
101
</body>
83
102
```
84
103
85
-
## Element style
104
+
## Свойство style
86
105
87
-
Свойство `elem.style` - это объект, который соответствует тому, что написано в атрибуте `"style"`. Установка стиля `elem.style.width="100px"` работает так же, как наличие в атрибуте `style` строки `width:100px`.
106
+
Свойство `elem.style`- это объект, который соответствует тому, что написано в атрибуте `"style"`.
88
107
89
-
Для свойства из нескольких слов используется camelCase:
108
+
Свойства из одного слова записываются так же, с маленькой буквы:
109
+
110
+
```js no-beautify
111
+
background => elem.style.background
112
+
top => elem.style.top
113
+
opacity => elem.style.opacity
114
+
```
115
+
116
+
Для свойств из нескольких слов используется [camelCase](https://ru.wikipedia.org/wiki/CamelCase):
Если мы установим в `style.display` пустую строку, то браузер применит CSS-классы и встроенные стили, как если бы такого свойства `style.display` вообще не было.
Обычно мы используем `style.*` для присвоения индивидуальных свойств стиля. Нельзя установить список стилей как, например, `div.style="color: red; width: 100px"`, потому что `div.style` -- это объект, и он доступен только для чтения.
133
-
134
-
Для задания нескольких стилей в одной строке используется специальное свойство `style.cssText`:
135
-
136
-
```html run
137
-
<divid="div">Button</div>
138
-
139
-
<script>
140
-
// можем даже устанавливать специальные флаги для стилей, например, "important"
141
-
div.style.cssText=`color: red !important;
142
-
background-color: yellow;
143
-
width: 100px;
144
-
text-align: center;
145
-
`;
146
-
147
-
alert(div.style.cssText);
148
-
</script>
149
-
```
150
-
151
-
Это свойство редко используется, потому что такое присваивание удаляет все существующие стили: оно не добавляет, а заменяет их. Можно ненароком удалить что-то нужное. Но его можно использовать, к примеру, для новых элементов, когда мы точно знаем, что не удалим существующий стиль.
152
-
153
-
То же самое можно сделать установкой атрибута: `div.setAttribute('style', 'color: red...')`.
154
-
````
155
-
156
158
## Следите за единицами измерения
157
159
158
160
Не забудьте добавить к значениям единицы измерения.
0 commit comments