Установка встроенных свойств CSS элемента HTML в JavaScript

В этом руководстве вы узнаете , как использовать свойство CSS для управления встроенным стилем элементов HTML — Style JavaScript.

Чтобы установить встроенный стиль элемента, вы используете свойство style этого элемента:

element.style

Свойство style возвращает доступный только для чтения объект CSSStyleDeclaration, содержащий список свойств CSS. Например, чтобы установить цвет элемента на red, вы используете следующий код:

element.style.color = 'red';

Если свойство CSS содержит дефисы( - ), например -webkit-text-stroke, вы можете использовать нотацию, подобную массиву( [] ), для доступа к свойству:

element.style.['-webkit-text-stock'] = 'unset';

В следующей таблице показаны общие свойства CSS:

CSSJavaScript
backgroundbackground
background-attachmentbackgroundAttachment
background-colorbackgroundColor
background-imagebackgroundImage
background-positionbackgroundPosition
background-repeatbackgroundRepeat
borderborder
border-bottomborderBottom
border-bottom-colorborderBottomColor
border-bottom-styleborderBottomStyle
border-bottom-widthborderBottomWidth
border-colorborderColor
border-leftborderLeft
border-left-colorborderLeftColor
border-left-styleborderLeftStyle
border-left-widthborderLeftWidth
border-rightborderRight
border-right-colorborderRightColor
border-right-styleborderRightStyle
border-right-widthborderRightWidth
border-styleborderStyle
border-topborderTop
border-top-colorborderTopColor
border-top-styleborderTopStyle
border-top-widthborderTopWidth
border-widthborderWidth
clearclear
clipclip
colorcolor
cursorcursor
displaydisplay
filterfilter
floatcssFloat
fontfont
font-familyfontFamily
font-sizefontSize
font-variantfontVariant
font-weightfontWeight
heightheight
leftleft
letter-spacingletterSpacing
line-heightlineHeight
list-stylelistStyle
list-style-imagelistStyleImage
list-style-positionlistStylePosition
list-style-typelistStyleType
marginmargin
margin-bottommarginBottom
margin-leftmarginLeft
margin-rightmarginRight
margin-topmarginTop
overflowoverflow
paddingpadding
padding-bottompaddingBottom
padding-leftpaddingLeft
padding-rightpaddingRight
padding-toppaddingTop
page-break-afterpageBreakAfter
page-break-beforepageBreakBefore
positionposition
stroke-dasharraystrokeDasharray
stroke-dashoffsetstrokeDashoffset
stroke-widthstrokeWidth
text-aligntextAlign
text-decorationtextDecoration
text-indenttextIndent
text-transformtextTransform
toptop
vertical-alignverticalAlign
visibilityvisibility
widthwidth
z-indexzIndex

Чтобы полностью переопределить существующий встроенный стиль, вы устанавливаете свойство cssText объекта style. Например:

element.style.cssText = 'color:red;
    background-color:yellow';

Или вы можете использовать метод setAttribute() :

element.setAttribute('style','color:red;background-color:yellow');

Установив встроенный стиль, вы можете изменить одно или несколько свойств CSS:

element.style.color = 'blue';

Если вы не хотите полностью перезаписывать существующие свойства CSS, вы можете соединить новое свойство CSS с cssText следующим образом:

element.style.cssText += 'color:red;background-color:yellow';

В этом случае оператор += добавляет новую строку стиля к существующей.

Следующая вспомогательная функция css() используется для установки нескольких стилей для элемента из объекта пар ключ-значение:

function css(e, styles) {
    for(const property in styles)
        e.style[property] = styles[property];
}

Вы можете использовать эту функцию css() для установки нескольких стилей для элемента с идентификатором #content следующим образом:

let content = document.querySelector('#content');
css(content, { background: 'yellow', border: 'solid 1px red'});

В следующем примере объект style используется для установки свойств CSS абзаца с идентификатором content :

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>JS Style Demo</title>
</head>
<body>
    <p id="content">JavaScript Setting Style Demo!</p>
    <script>
        let p = document.querySelector('#content');
        p.style.color = 'red';
        p.style.fontWeight = 'bold';
    </script>
</body>
</html>

Как это работает:

  • Сначала выберите элемент абзаца с идентификатором content, используя метод querySelector().
  • Затем установите свойства цвета и толщины шрифта абзаца, задав color и fontWeight объекта style.

Получение встроенных стилей

Свойство style возвращает встроенные стили элемента. На практике это не очень полезно, потому что свойство style не возвращает правила, полученные из других источников, например, стили из внешней таблицы стилей.

Чтобы применить все стили к элементу, вы должны использовать метод window.getComputedStyle().

Рейтинг
( Пока оценок нет )
Александр Русаков / автор статьи
Программист, разработчик, 12 лет опыта работы в крупных компаниях. Быстро освоил typescript, делюсь своими знаниями на страницах этого сайта.
Загрузка ...
JavaScript и TypeScript