русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

CSS_классы


Дата добавления: 2015-07-09; просмотров: 482; Нарушение авторских прав


 

Альтернативой использованию отдельных CSS_стилей через свойство style явля_ ется применение значения атрибута class через свойство className любого HTML_ элемента. Динамическое изменение класса элемента может приводить к сущест_ венным изменениям стилей, применяемых к этому элементу, при этом, конечно же, предполагается, что используемый класс соответствующим образом опреде_ лен в таблице стилей. Данный прием реализован в примере 18.3, выполняющем проверку правильности заполнения формы. JavaScript_код в этом примере уста_ навливает свойство className элементов формы в значение «valid» (верно) или «invalid» (неверно) в зависимости от того, правильная ли информация была вве_ дена пользователем. В состав примера 18.2 включена простая таблица стилей, которая определяет классы "valid" и "invalid" так, чтобы с их помощью можно было изменять цвет фона элементов ввода в форме.

 

Главное, что необходимо помнить об HTML_атрибуте class и соответствующем ему свойстве className, – они могут содержать более одного класса. Вообще, при работе со свойством className не принято просто устанавливать или читать его значение, как если бы это свойство содержало единственное имя класса (хотя, с целью упро_ щения, именно так и делается в главе 18). Вместо этого необходимо пользовать_ ся функцией, позволяющей проверить принадлежность элемента классу, а так_ же функциями добавления классов в свойство className элемента и их удаления из свойства className. В примере 16.7 приводятся определения таких функций. Программный код прост, но в его основе лежат регулярные выражения.

 

Пример 16.7. Вспомогательные функции для работы со свойством className

/**

* CSSClass.js: функции для работы с CSS_классами HTML_элемента.

 

*

* Данный модуль определяет единственный глобальный символ с именем CSSClass.



* Этот объект содержит вспомогательные функции для работы с атрибутом class

 

* (свойством className) HTML_элементов. Все функции принимают два аргумента:

* элемент e, принадлежность которого к CSS_классу требуется проверить

 

* или изменить, и собственно CSS_класс c, принадлежность к которому проверяется,

* или который добавляется или удаляется. Если элемент e _ строка,

 

* он воспринимается как значение атрибута id и передается методу

 

* document.getElementById().

*/

var CSSClass = {}; // Создать объект пространства имен

 

// Возвращает true, если элемент e является членом класса, в противном случае – false. CSSClass.is = function(e, c) {

if (typeof e == "string") e = document.getElementById(e); // id элемента


 

16.6. Таблицы стилей
   

 

// Прежде чем выполнять поиск с помощью регулярного выражения,

 

// оптимизировать для пары наиболее распространенных случаев. var classes = e.className;

if (!classes) return false; // Не является членом ни одного класса
if (classes == c) return true; // Член этого класса

 

// Иначе использовать регулярное выражение для поиска слова с

 

// \b в регулярных выражениях означает совпадение с границей слова. return e.className.search("\\b" + c + "\\b") != _1;

 

};

 

// Добавляет класс c в свойство className элемента e,

 

// если имя класса уже не было записано ранее. CSSClass.add = function(e, c) {

 

if (typeof e == "string") e = document.getElementById(e); // id элемента if (CSSClass.is(e, c)) return; // Если уже член класса _ ничего не делать

 

if (e.className) c = " " + c; // Добавить разделяющий пробел, если необходимо

e.className += c; // Добавить новый класс в конец

};

 

// Удалить все вхождения (если таковые имеются) класса c из свойства

// className элемента e

CSSClass.remove = function(e, c) {

if (typeof e == "string") e = document.getElementById(e); // id элемента

 

* Отыскать в className все вхождения c и заменить их "".

* \s* соответствует любому числу пробельных символов.

 

* "g" заставляет регулярное выражения искать все вхождения

e.className = e.className.replace(new RegExp("\\b"+ c+"\\b\\s*", "g"), "");

};

 



<== предыдущая лекция | следующая лекция ==>
Вычисляемые стили | Включение и выключение таблиц стилей


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.208 сек.