Spec-Zone.ru › Web APIs

CSSStyleSheet

Базовая реализация Широко доступна *

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с сентября 2015 года.

* Некоторые части этой функции могут иметь разный уровень поддержки.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Интерфейс CSSStyleSheet представляет собой отдельный CSS лист стилей и позволяет просматривать и изменять список правил, содержащихся в листе стилей. Он наследует свойства и методы от своего родителя, StyleSheet.

Лист стилей CSSStyleSheet

Лист стилей состоит из набора объектов CSSRule, представляющих каждое из правил в листе стилей. Правила содержатся в CSSRuleList, который можно получить из свойства cssRules листа стилей.

Например, одно правило может быть объектом CSSStyleRule содержащим стиль, такой как:

h1,
h2 {
  font-size: 16pt;
}

Другое правило может быть правилом at-rule, таким как @import или @media, и так далее.

Различные способы получения объекта CSSStyleSheet описаны в разделе Получение листа стилей. Объект CSSStyleSheet также можно создать напрямую. Конструктор и методы CSSStyleSheet.replace() и CSSStyleSheet.replaceSync() — это новые дополнения к спецификации, позволяющие создавать стили листа.

Конструктор

CSSStyleSheet()

Создает новый объект CSSStyleSheet.

Свойства экземпляра

Наследует свойства от своего родителя, StyleSheet.

CSSStyleSheet.cssRules Только для чтения

Возвращает живой CSSRuleList, который поддерживает актуальный список объектов CSSRule, составляющих лист стилей.

Примечание: В некоторых браузерах, если лист стилей загружается с другого домена, доступ к cssRules приводит к SecurityError.

CSSStyleSheet.ownerRule Только для чтения

Если этот лист стилей импортируется в документ с помощью правила @import, свойство ownerRule возвращает соответствующее CSSImportRule; в противном случае значение этого свойства — null.

Методы экземпляра

Наследует методы от своего родителя, StyleSheet.

CSSStyleSheet.deleteRule()

Удаляет правило по указанному индексу в списке правил листа стилей.

CSSStyleSheet.insertRule()

Вставляет новое правило в указанную позицию листа стилей, используя текстовое представление правила.

CSSStyleSheet.replace()

Асинхронно заменяет содержимое листа стилей и возвращает Promise, который разрешается с обновлённым объектом CSSStyleSheet.

CSSStyleSheet.replaceSync()

Синхронно заменяет содержимое листа стилей.

Свойства наследия

Эти свойства — свойства наследия, введенные Microsoft; они поддерживаются для совместимости со старыми сайтами.

rules Только для чтения Устаревшее

Свойство rules функционально идентично стандартному свойству cssRules; оно возвращает живой CSSRuleList, который поддерживает актуальный список всех правил в листе стилей.

Методы наследия

Эти методы — методы наследия, введенные Microsoft; они поддерживаются для совместимости со старыми сайтами.

addRule() Устаревшее

Добавляет новое правило в лист стилей, используя селектор, к которому применяется стиль, и блок стиля, который применяется к соответствующим элементам.

Это отличается от insertRule(), который принимает текстовое представление всего правила как одной строки.

removeRule() Устаревшее

Функционально идентично deleteRule(); удаляет правило по указанному индексу из списка правил листа стилей.

Получение листа стилей

Лист стилей связан не более чем с одним Document, к которому он применяется (если не отключён). Список объектов CSSStyleSheet для данного документа можно получить, используя свойство Document.styleSheets. Конкретный лист стилей также можно получить из его объекта-владельца (Node или CSSImportRule), если таковой имеется.

Объект CSSStyleSheet создаётся и автоматически вставляется в список Document.styleSheets документа браузером при загрузке листа стилей для документа.

Ниже представлен (возможно, неполный) список способов, которыми лист стилей может быть связан с документом:

Причина ассоциации листа стилей с документом Присутствует в списке document.
styleSheets
Получение владельца элемента/правила по объекту листа стилей Интерфейс для объекта владельца Получение объекта CSSStyleSheet от владельца
Элементы <style> и <link> в документе Да .ownerNode HTMLLinkElement,
HTMLStyleElement,
или SVGStyleElement
HTMLLinkElement.sheet,
HTMLStyleElement.sheet,
или SVGStyleElement.sheet
Правило CSS @import в других листах стилей, применённых к документу Да .ownerRule CSSImportRule .styleSheet
<?xml-stylesheet ?> инструкция обработки в (не-HTML) документе Да .ownerNode ProcessingInstruction .sheet
JavaScript import ... with { type: "css" } Нет N/A N/A N/A
Заголовок ссылки HTTP Да N/A N/A N/A
Листы стилей пользователя (по умолчанию) Нет N/A N/A N/A

Спецификации

Спецификация
CSS Объектная модель (CSSOM)
# the-cssstylesheet-interface

Совместимость с браузерами

Рабочий стол Мобильный
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
CSSStyleSheet 73 79 101 60 16.4 73 101 52 16.4 11.0 73
CSSStyleSheet 1 12 1 ≤12.1 1 18 4 ≤12.1 1 1.0 4.4
addRule 1 12 68 15 1 18 68 14 1 1.0 4.4
cssRules 1 12 1 ≤12.1 1 18 4 ≤12.1 1 1.0 4.4
deleteRule 1 12 1 ≤12.1 1 18 4 ≤12.1 1 1.0 4.4
insertRule 1 12 1 ≤12.1 1 18 4 ≤12.1 1 1.0 4.4
ownerRule 1 12 1 ≤12.1 1 18 4 ≤12.1 1 1.0 4.4
removeRule 1 12 68 15 3 18 68 14 1 1.0 4.4
replace 73 79 101 60 16.4 73 101 52 16.4 11.0 73
replaceSync 73 79 101 60 16.4 73 101 52 16.4 11.0 73
rules 1 12 68 15 1 18 68 14 1 1.0 4.4

См. также

  • CSS Объектная модель
  • Использование динамической информации об оформлении

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API