.style — JavaScript — Дока
Кратко
Скопировано
Свойство style
получает и устанавливает инлайновые стили элемента, то есть те, что записываются через HTML-атрибут style
.
С помощью него можно управлять стилем элемента. Специфичность этого свойства такая же, как у атрибута style
.
Как пишется
Скопировано
Чтобы получить значения инлайновых стилей с помощью свойства style
, мы можем записать:
const element = document.getElementById('someElement')const inlineStyles = element.style
const element = document.getElementById('someElement')
const inlineStyles = element.style
В этом случае в значение inline
запишется объект CSS
, который будет содержать в себе все инлайновые стили элемента element
.
Чтобы задать стили для элемента, мы можем использовать несколько способов. Либо через css
, чтобы указать несколько свойств разом. (Тем же эффектом обладает установка стиля через set
.) Либо через отдельные свойства в style
.
Следующие две записи работают одинаково и устанавливают несколько стилей в одном выражении:
element.style.cssText = 'color: blue; border: 1px solid black'element.setAttribute('style', 'color:red; border: 1px solid blue;')
element.style.cssText = 'color: blue; border: 1px solid black'
element.setAttribute('style', 'color:red; border: 1px solid blue;')
Следующая — устанавливает значение определённого свойства, оставляя другие значения стиля нетронутыми:
element.style.color = 'blue'
element.style.color = 'blue'
Как понять
Скопировано
Свойство style
— это механизм для работы со стилями на элементе. С его помощью можно управлять отображением элементов в «рантайме», то есть во время выполнения скрипта.
Этот механизм позволяет «перетирать» стили, описанные в CSS-таблицах, так как специфичность стилей в атрибуте style
выше (за исключением стилей с !important
).
Чтобы указать значение конкретного CSS-свойства, мы можем использовать одноимённое отображение в style
:
// Если мы хотим указать color:element.style.color = 'red' // или 'rgb(255,0,0)', или '#f00'// Если хотим указать font-family:element.style.fontFamily = 'Arial'
// Если мы хотим указать color:
element.style.color = 'red' // или 'rgb(255,0,0)', или '#f00'
// Если хотим указать font-family:
element.style.fontFamily = 'Arial'
Обратите внимание, что имена свойств в style
записываются в camelCase, в отличие от CSS-свойств, которые записываются через дефис.
Таким образом font
превращается в font
, а, например, background
— в background
.
При сомнениях в том, как правильно называется то или иное свойство, воспользуйтесь списком соответствий:
CSS-свойства в JS-нотацииCSS | JavaScript |
---|---|
background | background |
background-attachment | backgroundAttachment |
background-color | backgroundColor |
background-image | backgroundImage |
background-position | backgroundPosition |
background-repeat | backgroundRepeat |
border | border |
border-bottom | borderBottom |
border-bottom-color | borderBottomColor |
border-bottom-style | borderBottomStyle |
border-bottom-width | borderBottomWidth |
border-color | borderColor |
border-left | borderLeft |
border-left-color | borderLeftColor |
border-left-style | borderLeftStyle |
border-left-width | borderLeftWidth |
border-right | borderRight |
border-right-color | borderRightColor |
border-right-style | borderRightStyle |
border-right-width | borderRightWidth |
border-style | borderStyle |
border-top | borderTop |
border-top-color | borderTopColor |
border-top-style | borderTopStyle |
border-top-width | borderTopWidth |
border-width | borderWidth |
clear | clear |
clip | clip |
color | color |
cursor | cursor |
display | display |
filter | filter |
float | cssFloat |
font | font |
font-family | fontFamily |
font-size | fontSize |
font-variant | fontVariant |
font-weight | fontWeight |
height | height |
left | left |
letter-spacing | letterSpacing |
line-height | lineHeight |
list-style | listStyle |
list-style-image | listStyleImage |
list-style-position | listStylePosition |
list-style-type | listStyleType |
margin | margin |
margin-bottom | marginBottom |
margin-left | marginLeft |
margin-right | marginRight |
margin-top | marginTop |
overflow | overflow |
padding | padding |
padding-bottom | paddingBottom |
padding-left | paddingLeft |
padding-right | paddingRight |
padding-top | paddingTop |
page-break-after | pageBreakAfter |
page-break-before | pageBreakBefore |
position | position |
stroke-dasharray | strokeDasharray |
stroke-dashoffset | strokeDashoffset |
stroke-width | strokeWidth |
text-align | textAlign |
text-decoration | textDecoration |
text-indent | |
text-transform | textTransform |
top | top |
vertical-align | verticalAlign |
visibility | visibility |
width | width |
На практике
Скопировано
Саша Беспоясов советует
Скопировано
В целом для управления стилями лучше использовать CSS. Можно использовать классы-модификаторы, чтобы придавать какие-то наборы стилей элементу.
Инлайновые стили имеют более высокую специфичность — их труднее переопределить, и это мешает нормальной работе со стилями элемента.
Пример. Мы пишем библиотеку, которая умеет красиво рисовать кнопки. Если мы установим цвет и размер кнопки с помощью инлайновых стилей, то пользователь библиотеки не сможет их легко поменять. Использовать такую библиотеку никто не захочет
Однако есть некоторые случаи, когда манипуляция инлайн-стилями — это ок. Например, если мы хотим управлять отображением элемента точечно, и описывать это в CSS невозможно.
Представьте, что вы хотите сделать анимацию движения точки на экране так, чтобы движение было случайным. В CSS (пока что) этого сделать нельзя, только скриптами. И вот здесь изменение инлайновых стилей как раз кстати.
Для изменения таких стилей используется свойство style
.
Используйте style
, чтобы изменить или получить инлайновые стили элемента.
🛠 Чтобы переписать стиль элемента полностью, можно использовать css
или set
.
element.style.cssText = 'color: blue; border: 1px solid black'element.setAttribute('style', 'color:red; border: 1px solid blue;')element.style.cssText = 'color: blue; border: 1px solid black' element.setAttribute('style', 'color:red; border: 1px solid blue;')
🛠 Чтобы обновить значение конкретного свойства, а остальные оставить нетронутыми, используйте style
:
element.style.color = 'red'element.style.fontFamily = 'Arial'
element.style.color = 'red'
element.style.fontFamily = 'Arial'
🛠 Чтобы сбросить значение, присвойте ему null
.
// Если у элемента прописано,// то такая запись:element.style.backgroundColor = null// ...оставит только.
// Если у элемента прописано,
// то такая запись:
element. style.backgroundColor = null
// ...оставит только.
🛠 Численным свойствам, таким как margin
, padding
border-width
и другим, следует указывать не только значение, но и единицу измерения:element.style.marginTop = '50px'
element.style.marginTop = '50px'
Элементы DOM – React
React реализует независимую от браузера систему DOM для повышения производительности и кроссбраузерной совместимости. Это позволило избавиться от некоторых шероховатостей в браузерных реализациях DOM.
В React все свойства и атрибуты DOM (включая обработчики событий) должны быть в стиле camelCase. Например, HTML-атрибут tabindex
соответствует атрибуту tabIndex
в React. Исключение составляют атрибуты aria-*
и data-*
, которые следует писать в нижнем регистре. В частности, вы можете оставить aria-label
как aria-label
.
Различия в атрибутах
Есть ряд атрибутов, которые по-разному работают в React и HTML:
checked
Атрибут checked
поддерживается компонентами <input>
типа checkbox
или radio
. Он нужен для того, чтобы узнать выбран ли компонент. Это полезно для создания управляемых компонентов. defaultChecked
— это неуправляемый эквивалент, который определяет, выбран ли компонент на момент первого монтирования.
className
Чтобы указать класс CSS, используйте атрибут className
. Это относится ко всем обычным элементам DOM и SVG, таким как <div>
, <a>
и т. д.
Если вы используете React с веб-компонентами (что встречается редко), используйте вместо этого атрибут class
.
dangerouslySetInnerHTML
Свойству innerHTML
в DOM браузера соответствует dangerouslySetInnerHTML
в React. Как правило, вставка HTML из кода рискованна, так как можно случайно подвергнуть ваших пользователей атаке межсайтового скриптинга. Таким образом, вы можете вставить HTML непосредственно из React используя dangerouslySetInnerHTML
и передать объект с ключом __html
, чтобы напомнить себе, что это небезопасно. Например:
function createMarkup() { return {__html: 'Первый · Второй'}; } function MyComponent() { return <div dangerouslySetInnerHTML={createMarkup()} />; }
htmlFor
Поскольку for
является зарезервированным словом JavaScript, для определения HTML-атрибута for
в элементах React вместо него используйте htmlFor
.
onChange
Событие onChange
ведёт себя ожидаемо: событие срабатывает при изменении поля формы. Мы намеренно не используем существующее поведение браузера, потому что имя onChange
плохо передаёт, что происходит на самом деле. Вместо этого, React-реализация onChange
опирается на браузерное событие для обработки ввода в реальном времени.
selected
Если вы хотите отметить некоторый пункт списка
выделенным, задайте его значение в атрибуте value
тега <select>
. Изучите «Тег select» для получения подробных инструкций.
style
Примечание
Некоторые примеры в документации используют для удобства
style
, но использование атрибутаstyle
для оформления элементов не рекомендуется. В большинстве случаев для ссылки на классы, определённые во внешнем CSS, следует использоватьclassName
. Атрибутstyle
в React чаще всего используется при добавлении динамически вычисляемых стилей во время рендера. Смотрите FAQ: Стилизация и CSS.
Атрибут style
принимает JavaScript-объект со свойствами в camelCase вместо CSS-строк. Такой подход повышает эффективность и защищает от XSS. Например:
const divStyle = { color: 'blue', backgroundImage: 'url(' + imgUrl + ')', }; function HelloWorldComponent() { return <div style={divStyle}>Привет, мир!</div>; }
Обратите внимание, что браузерные префиксы не добавляются к стилям автоматически. Для поддержки старых браузеров необходимо добавить соответствующие свойства стиля:
const divStyle = { WebkitTransition: 'all', // обратите внимание на заглавную букву W msTransition: 'all' // 'ms' — единственный префикс в нижнем регистре }; function ComponentWithTransition() { return <div style={divStyle}>Это будет работать в разных браузерах</div>; }
Ключи стилей записываются в camelCase для обеспечения доступа к аналогичным свойствам DOM из JS (например, node.style.backgroundImage
). Префиксы браузера кроме ms
должны начинаться с заглавной буквы. Вот почему WebkitTransition
начинается с заглавной «W».
React автоматически добавит суффикс «px» к свойствам стилей с числовым значением. Если вы хотите использовать единицы измерения, отличные от «px», укажите значение в виде строки с желаемой единицей измерения. Например:
// Результат: '10px' <div style={{ height: 10 }}> Привет, мир! </div> // Результат: '10%' <div style={{ height: '10%' }}> Привет, мир! </div>
Однако не все свойства стилей преобразуются в пиксельные строки. Некоторые из них остаются без единиц (например, zoom
, order
, flex
). Полный список свойств без единиц измерения можно увидеть здесь.
suppressContentEditableWarning
Обычно, когда элемент с потомками помечен как contentEditable
, появляется предупреждение, что он не будет работать. Данный атрибут скрывает это предупреждение. Поэтому используйте его, только если вы создаёте похожую на Draft.js библиотеку, которая управляет contentEditable
вручную.
suppressHydrationWarning
Если вы используете рендеринг React на стороне сервера и клиент с сервером рендерят разный контент, то как правило, об этом выдаётся предупреждение. Однако в редких случаях очень сложно или невозможно гарантировать точное совпадение. Например, ожидается, что временные метки будут различаться на сервере и на клиенте.
Если для suppressHydrationWarning
установлено значение true
, React не будет предупреждать вас о несоответствиях в атрибутах и содержимом этого элемента. Он работает только на один уровень глубины и предназначен для использования в качестве запасного решения. Не злоупотребляйте этим. Вы можете прочитать больше о гидратации на странице ReactDOM.hydrateRoot()
.
value
Атрибут value
поддерживается компонентами <input>
, <select>
и <textarea>
. Он устанавливает значение компонента. Это полезно для создания управляемых компонентов. defaultValue
— это неуправляемый эквивалент, который устанавливает значение компонента во время первого монтирования.
Поддержка всех HTML-атрибутов
Начиная с React 16, полностью поддерживаются любые стандартные или пользовательские атрибуты DOM.
React всегда предоставлял JavaScript-ориентированный API для DOM. Поскольку компоненты React часто принимают как пользовательские, так и связанные с DOM пропсы, React использует стиль camelCase
так же, как DOM API:
<div tabIndex={-1} /> // То же, что и node. tabIndex DOM API <div className="Button" /> // То же, что и node.className DOM API <input readOnly={true} /> // То же, что и node.readOnly DOM API
Эти пропсы работают аналогично соответствующим атрибутам HTML, за исключением особых случаев, описанных выше.
Некоторые из атрибутов DOM, поддерживаемые React:
accept acceptCharset accessKey action allowFullScreen alt async autoComplete autoFocus autoPlay capture cellPadding cellSpacing challenge charSet checked cite classID className colSpan cols content contentEditable contextMenu controls controlsList coords crossOrigin data dateTime default defer dir disabled download draggable encType form formAction formEncType formMethod formNoValidate formTarget frameBorder headers height hidden high href hrefLang htmlFor httpEquiv icon id inputMode integrity is keyParams keyType kind label lang list loop low manifest marginHeight marginWidth max maxLength media mediaGroup method min minLength multiple muted name noValidate nonce open optimum pattern placeholder poster preload profile radioGroup readOnly rel required reversed role rowSpan rows sandbox scope scoped scrolling seamless selected shape size sizes span spellCheck src srcDoc srcLang srcSet start step style summary tabIndex target title type useMap value width wmode wrap
Кроме того, полностью поддерживаются все SVG-атрибуты:
accentHeight accumulate additive alignmentBaseline allowReorder alphabetic amplitude arabicForm ascent attributeName attributeType autoReverse azimuth baseFrequency baseProfile baselineShift bbox begin bias by calcMode capHeight clip clipPath clipPathUnits clipRule colorInterpolation colorInterpolationFilters colorProfile colorRendering contentScriptType contentStyleType cursor cx cy d decelerate descent diffuseConstant direction display divisor dominantBaseline dur dx dy edgeMode elevation enableBackground end exponent externalResourcesRequired fill fillOpacity fillRule filter filterRes filterUnits floodColor floodOpacity focusable fontFamily fontSize fontSizeAdjust fontStretch fontStyle fontVariant fontWeight format from fx fy g1 g2 glyphName glyphOrientationHorizontal glyphOrientationVertical glyphRef gradientTransform gradientUnits hanging horizAdvX horizOriginX ideographic imageRendering in in2 intercept k k1 k2 k3 k4 kernelMatrix kernelUnitLength kerning keyPoints keySplines keyTimes lengthAdjust letterSpacing lightingColor limitingConeAngle local markerEnd markerHeight markerMid markerStart markerUnits markerWidth mask maskContentUnits maskUnits mathematical mode numOctaves offset opacity operator order orient orientation origin overflow overlinePosition overlineThickness paintOrder panose1 pathLength patternContentUnits patternTransform patternUnits pointerEvents points pointsAtX pointsAtY pointsAtZ preserveAlpha preserveAspectRatio primitiveUnits r radius refX refY renderingIntent repeatCount repeatDur requiredExtensions requiredFeatures restart result rotate rx ry scale seed shapeRendering slope spacing specularConstant specularExponent speed spreadMethod startOffset stdDeviation stemh stemv stitchTiles stopColor stopOpacity strikethroughPosition strikethroughThickness string stroke strokeDasharray strokeDashoffset strokeLinecap strokeLinejoin strokeMiterlimit strokeOpacity strokeWidth surfaceScale systemLanguage tableValues targetX targetY textAnchor textDecoration textLength textRendering to transform u1 u2 underlinePosition underlineThickness unicode unicodeBidi unicodeRange unitsPerEm vAlphabetic vHanging vIdeographic vMathematical values vectorEffect version vertAdvY vertOriginX vertOriginY viewBox viewTarget visibility widths wordSpacing writingMode x x1 x2 xChannelSelector xHeight xlinkActuate xlinkArcrole xlinkHref xlinkRole xlinkShow xlinkTitle xlinkType xmlns xmlnsXlink xmlBase xmlLang xmlSpace y y1 y2 yChannelSelector z zoomAndPan
Вы также можете использовать пользовательские атрибуты, если они написаны в нижнем регистре.
Стиль элемента HTML DOM Свойство
❮ Назад ❮ Ссылка на объект элемента Далее ❯
Примеры
Изменить цвет «myh2»:
document.getElementById(«myh2»).style.color = «red»;
Попробуйте сами »
Получите значение верхней границы «myP»:
let value = document.getElementById(«myP»).style.borderTop;
Попробуйте сами »
Определение и использование
Свойство style
возвращает значения атрибута стиля элемента.
Свойство стиля возвращает объект
CSSStyleDeclaration
.
Объект CSSStyleDeclaration
содержит все свойства встроенных стилей для элемента.
Он не содержит никаких свойств стиля, установленных в разделе
Примечание 1
Вы не можете установить такой стиль:
element.style = "color:red";
Вы должны использовать такое свойство CSS:
element. style.backgroundColor = "red";
Попробуйте сами »
Примечание 2
Синтаксис JavaScript немного отличается от синтаксиса CSS:
backgroundColor / background-color.
См. наш полный справочник по объектам стилей.
Примечание 3
Используйте это свойство стиля вместо метода setAttribute(), чтобы предотвратить перезапись других свойств в атрибуте стиля.
См. также:
Учебное пособие по CSS
Справочник по CSS
Объект стиля
Тег HTML
Синтаксис
Возвращает свойство стиля:
элемент .style. свойство
Установить свойство стиля:
элемент .style. свойство =значение
Возвращаемое значение
Тип | Описание |
значение | Значение указанного свойства. Например: |
Возвращаемое значение
Тип | Описание |
Объект | Объект элемента CSSStyleDeclaration. |
Поддержка браузера
element.style
— это функция DOM Level 2 (2001).
Полностью поддерживается во всех браузерах:
Хром | Край | Фаерфокс | Сафари | Опера | ИЭ |
Да | Да | Да | Да | Да | 9-11 |
❮ Предыдущий ❮ Ссылка на объект элемента Следующий ❯
ВЫБОР ЦВЕТА
Лучшие учебники
Учебное пособие по HTMLУчебное пособие по CSS
Учебное пособие по JavaScript
Учебное пособие
Учебное пособие по SQL
Учебное пособие по Python
Учебное пособие по W3.CSS
Учебное пособие по Bootstrap
Учебное пособие по PHP
Учебное пособие по Java
Учебное пособие по C++
Учебное пособие по jQuery
Основные ссылки
HTML ReferenceCSS Reference
JavaScript Reference
SQL Reference
Python Reference
W3.CSS Reference
Bootstrap Reference
PHP Reference
HTML Colors
Java Reference
Angular Reference
jQuery Reference
Лучшие примеры
Примеры HTMLПримеры CSS
Примеры JavaScript
Примеры инструкций
Примеры SQL
Примеры Python
Примеры W3.CSS
Примеры Bootstrap
Примеры PHP
Примеры Java
Примеры XML
Примеры jQuery
FORUM | О
W3Schools оптимизирован для обучения и обучения. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники,ссылки и примеры постоянно пересматриваются,чтобы избежать ошибок,но мы не можем гарантировать полную правильность всего содержания.Используя W3Schools,вы соглашаетесь прочитать и принять наши условия использования,куки-файлы и политика конфиденциальности.
Copyright 1999-2023 Refsnes Data. Все права защищены.
W3Schools работает на основе W3.CSS.
JavaScript Kit-DOM встроенный объект «стиль»
Последнее обновление:27 февраля 2006 г.
Объект Style модели DOM позволяет динамически изменять значения ваших свойств CSS,независимо от того,определены ли они как встроенные или через внешнюю таблицу стилей. Перемены моментально отражаются на страница. Синтаксис:
Встроенный стиль:element.style.color="red"//изменить элемент на красный,изменение свойства цвета CSS.
Внешний
Стиль://В Firefox измените свойство цвета в первом правило первого внешнего CSS на странице:
document.styleSheets[0].cssRules[0].style.color="red"
//В IE Win измените свойство цвета в первом правило первого внешнего CSS на странице:
document.styleSheets[0].rules[0].style.color="красный"
Пример 1:
Пример 2:
Обратите внимание,что в примере 2 в качестве сценария используется "backgroundColor". эквивалент «цвет фона» в CSS. В JavaScript для доступа к свойству CSS,которое содержит дефисы (т. е. фоновый цвет),удалите дефис и вместо этого используйте заглавные буквы. первая буква после нее.
Пример 3:
p{
размер шрифта:16px;
}
Примечание: См. наш CSS Ссылка для полного списка атрибутов CSS.
Свойства
Свойства | Описание | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Большинство атрибутов CSS представлены в виде
свойства в объекте Style. Для атрибутов без дефиса
свойство идентично, а для атрибутов с дефисом удалите
дефис и сделать заглавной первую букву после него. Например,
для управления свойством CSS background-color через DOM,
синтаксис будет выглядеть примерно так: document.getElementById("Джордж").style.backgroundColor="белый" Примеры:
См. Оставить комментарий
|