- Операторы
- Управляющие инструкции
- JS Объекты
- браузер BOM
- HTML DOM
- Свойства узлов
- «Семья» элементов
- Выборка элементов DOM
- Добавление и удаление узлов
- Размеры и прокрутка
- Атрибуты и стили
- CSSStyleSheet
- Выделение
- События
- HTML Объекты
- Промисы, async/await
- Сетевые запросы
- Бинарные данные и файлы
- Разное
CSSStyleSheet
Свойство document.styleSheets возвращает доступный только для чтения объект, подобный массиву, содержащий объекты CSSStyleSheet
, представляющие таблицы стилей документа, как внутреннмх <style>
так и внешних <link>
. Если элементы <style>
имеют атрибуты id
, можно ссылаться на них непосредственно с помощью document.getElementById(element_id)
.
Синтаксис
document.styleSheets // Получение коллекции объектов.
Комментарии
Имеется возможность создавать совершенно новые таблицы стилей и добавлять их в документ. В большинстве браузеров эта операция выполняется с помощью стандартных приемов, реализованных в модели DOM: создается новый элемент <style>
и вставляется в документ в раздел <head>, затем с помощью свойства innerHTML
добавляется содержимое таблицы стилей.
Однако в IE8- и в более ранних версиях новый объект CSSStyleSheet
необходимо создавать с помощью нестандартного метода document.createStyleSheet()
, а текст таблицы стилей добавлять с помощью свойства cssText
.
Каждый объект CSSStyleSheet
имеет свои свойства и методы:
cssRules | Содержит объекты типа CSSRule ( массив правил стилей ) |
deleteRule() | Удаляет CSS-правило. |
disabled | Показывает, будет ли применяться таблица стилей к текущему документу или нет. |
href | URL-адрес таблицы стилей. |
insertRule() | Добавляет новое CSS-правило. |
media | Список устройств вывода, к которым применяется данная CSS-таблица. |
ownerNode | Элемент, с помощью которого данная таблица стилей была добавлена в документ. |
ownerRule | Правило, которое привело к включению данной таблицы стилей. |
parentStyleSheet | Таблица стилей, содержащая данное правило или данную CSS-таблицу. |
title | Содержит значение атрибута title. |
type | Содержит информацию о MIME-типе. |
IE8- не реализует правила в соответствии со стандартами. Вместо cssRules он использует rules
. IE использует также removeRule
вместо deleteRule и addRule(selector, rule, index)
вместо insertRule.
Текущая web-страница
имеет следующие таблицы стилей:
Узнать количество CSS таблиц можно с помощью свойства length
:
alert (document.styleSheets.length);
cssRules
Свойство cssRules возвращает только для чтения массив объектов правил таблиц стилей. В терминологии W3C DOM эти объекты называются объектами cssRule
.
Синтаксис
objStyleSheet.cssRules // objStyleSheet - объект CSSStyleSheet
Описание, комментарии, примеры
Каждый объект cssRule
имеет два изменяемых свойства:
- selectorText - возвращает / изменяет строку с селектором
- cssText - возвращает / изменяет текстовую строку, состоящую из стилей, примененных к элементу и их значений.
var d = document.styleSheets[1].cssRules; alert ( 'length = ' + d.length + '\n' + 'selectorText: ' + d[2].selectorText + '\n' + 'cssText:\n' + d[2].cssText );
deleteRule()
Метод deleteRule удаляет CSS-правило с указанным индексом (index) из указанной таблицы стилей (objStyleSheet)
Синтаксис
objStyleSheet.deleteRule(index)
Примеры
var d = document.styleSheets[1].cssRules; var s = d.length + ', [1] = ' + d[1].cssText + '\n'; document.styleSheets[1].deleteRule(1); alert (s + '\n' + d.length + ', [1] = ' + d[1].cssText);
disabled
Если свойство disabled принимает значение true, таблица стилей оказывается отключенной и будет игнорироваться браузером.
Синтаксис
objStyleSheet.disabled [ = true|false ]
Примеры
<style id="mystyle"> h1 {font-size: 36px; color: #FF3300} p { font-family: "Times New Roman", Times, serif; color: #0000FF} </style> <h1>Работа с каскадными таблицами стилей</h1> <p>С помощью этого объекта можно подключить или отключить всю таблицу, получить доступ к отдельным правилам, добавить или удалить правила.</p> <button onClick="document.styleSheets[0].disabled=true"> Отключить стиль </button> <button onClick="document.styleSheets[0].disabled=false"> Подключить стиль </button>
href
Свойство href возвращает или изменяет URL
, определённый атрибутом HREF
для внешней таблицы стилей (<link>).
Синтаксис
objStyleSheet.href [ = newURL ]
newURL
- новое значение атрибута HREF.
Возвращаемое значение
Строка полного или относительного URL.
Примеры
alert (document.styleSheets[0].href)
insertRule()
Метод insertRule присоединяет или вставляет правило стилей в текущий объект CSSStyleSheet
. Место вставки нового правила в массиве cssRules
задаётся с помощью индекса. Если вы хотите присоединить правило в конце списка, используйте в качестве параметра свойство length
массива cssRules
. insertRule возвращает индекс места расположения вставленного правила.
Синтаксис
objStyleSheet.insertRule(rule, index)
Параметры
- rule
- Строка, содержащая правило стиля в том виде, в котором оно было представлено в таблице стилей, включая селектор и фигурные скобки.
- index
- Дополнительное целое число, указывающее, куда новый элемент должен быть помещен в коллекции.
Пример
// <h4 id="example4" class="exclass3"> Пример </h4> var d = document.styleSheets[1]; var len = d.cssRules.length; var s = len + ': ' + d.cssRules[len-1].cssText; var rule = "h4.exclass3 { color: #126534; font-size:20px; font-style: italic; background-color: #aaeeff;}" d.insertRule(rule, len); len = d.cssRules.length; alert ( s + '\n' + len + ': ' + d.cssRules[len-1].cssText );
media
Свойство media возвращает / изменяет устройство вывода, к которым применяется данная CSS-таблица.
Синтаксис
objStyleSheet.media [ = strMedia ]
strMedia
- любое из следующих постоянных значений как строка: all | print | screen.
Примеры
alert(document.styleSheets[0].media + '\n' + document.styleSheets[1].media);
ownerNode
Свойство ownerNode представляет собой ссылку на узел документа, в котором определяется объект CSSStyleSheet. Для тех объектов CSSStyleSheet, которые определены в элементах <STYLE>
и <LINK>
, данное свойство служит ссылкой на эти объекты.
Синтаксис
objStyleSheet.ownerNode
Возвращаемое значение
Ссылка на узел.
Примеры
alert (document.styleSheets[0].ownerNode.tagName + '\n' + document.styleSheets[1].ownerNode.tagName);
ownerRule
Свойство ownerRule применяется по отношению к объекту CSSStyleSheet
, который был импортирован в документ с помощью правила @import
. Это свойство возвращает ссылку на правило @import
, отвечающее за загрузку внешней таблицы стилей.
Синтаксис
objStyleSheet.ownerRule
Возвращаемое значение
Ссылка на элемент.
parentStyleSheet
Свойство parentStyleSheet возвращает ссылку на объект CSSStyleSheet
(созданный как элемент <LINK>
или <STYLE>
), который импортировал текущую таблицу стилей.
Синтаксис
objStyleSheet.parentStyleSheet
Возвращаемое значение:
Ссылка на объект.
Примеры
alert(document.styleSheets[0].parentStyleSheet + '\n' + document.styleSheets[1].parentStyleSheet);
title
Свойство title возвращает значение атрибута title
обхекта CSSStyleSheet
.
Синтаксис
objStyleSheet.title
Примеры
alert ( document.styleSheets[0].title + '\n' + document.styleSheets[1].title);
type
Свойство type возвращает значение информацию о MIME-типе..
Синтаксис
objStyleSheet.type
Возвращаемое значение
Строка - MIME-тип данных.
Примеры
alert ( document.styleSheets[0].type + '\n' + document.styleSheets[1].type);