Skip to content

Commit a047527

Browse files
authored
Обновление статьи "Стили и классы"
1 parent b24f609 commit a047527

File tree

1 file changed

+30
-28
lines changed

1 file changed

+30
-28
lines changed

2-ui/1-document/08-styles-and-classes/article.md

Lines changed: 30 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,25 @@ elem.style.left = left; // например, '123px', значение вычи
2121
elem.style.top = top; // например, '456px'
2222
```
2323

24+
Мы также можем установить сразу несколько стилей для элемента, используя свойство `cssText`. Но с ним нужно быть осторожнее, т.к оно может как добавить стили к существующим, так и полностью перезаписать их на новые:
25+
26+
```js
27+
let top = /* сложные расчёты */;
28+
let left = /* сложные расчёты */;
29+
30+
elem.style.cssText *!*=*/!* ` // полная перезапись стилей elem, используем =
31+
top: ${top};
32+
left: ${left};
33+
`;
34+
35+
elem.style.cssText *!*+=*/!* ` // добавление к существующим стилям elem новых стилей, используем +=
36+
top: ${top};
37+
left: ${left};
38+
`;
39+
40+
// если элементу уже заданы стили, которые мы хотим добавить (+=), они будут перезаписаны на новые.
41+
```
42+
2443
В других случаях, например, чтобы сделать текст красным, добавить значок фона -- описываем это в CSS и добавляем класс (JavaScript может это сделать). Это более гибкое и лёгкое в поддержке решение.
2544

2645
## className и classList
@@ -82,11 +101,19 @@ elem.style.top = top; // например, '456px'
82101
</body>
83102
```
84103

85-
## Element style
104+
## Свойство style
86105

87-
Свойство `elem.style` - это объект, который соответствует тому, что написано в атрибуте `"style"`. Установка стиля `elem.style.width="100px"` работает так же, как наличие в атрибуте `style` строки `width:100px`.
106+
Свойство `elem.style` - это объект, который соответствует тому, что написано в атрибуте `"style"`.
88107

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):
90117

91118
```js no-beautify
92119
background-color => elem.style.backgroundColor
@@ -128,31 +155,6 @@ setTimeout(() => document.body.style.display = "", 1000); // возврат к
128155

129156
Если мы установим в `style.display` пустую строку, то браузер применит CSS-классы и встроенные стили, как если бы такого свойства `style.display` вообще не было.
130157

131-
````smart header="Полная перезапись `style.cssText`"
132-
Обычно мы используем `style.*` для присвоения индивидуальных свойств стиля. Нельзя установить список стилей как, например, `div.style="color: red; width: 100px"`, потому что `div.style` -- это объект, и он доступен только для чтения.
133-
134-
Для задания нескольких стилей в одной строке используется специальное свойство `style.cssText`:
135-
136-
```html run
137-
<div id="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-
156158
## Следите за единицами измерения
157159

158160
Не забудьте добавить к значениям единицы измерения.

0 commit comments

Comments
 (0)