- Операторы
- Управляющие инструкции
- JS Объекты
- браузер BOM
- HTML DOM
- Свойства узлов
- «Семья» элементов
- Выборка элементов DOM
- Добавление и удаление узлов
- Размеры и прокрутка
- Intersection Observer API
- Атрибуты и стили
- 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);