Управление внешним видом элементов страницы
Оглавление
Управление внешним видом элементов страницы
Страница 2
Страница 3
Страница 4
Страница 1 из 4
Начнем с управления внешним видом элементов страницы и создания простейших
анимационных эффектов.
Как изменить внешний вид элемента страницы?
Проблема
Мне нужно изменить внешний вид элемента страницы (цвет текста, фона, размеры
рамки и др.). Как это делается?
Решение
Все экземпляры объектов, представляющие элементы страницы, содержат вложенный
объект style. Свойства этого объекта суть атрибуты стиля CSS, привязанного к
данному элементу страницы.
Чтобы выяснить имя свойства объекта style, соответствующее нужному нам
атрибуту стиля, достаточно знать одно несложное правило. Имена этих свойств
имеют почти такие же имена, как и атрибуты стиля, только без символов "тире", а первые буквы всех слов, образующих имя атрибута кооме
первого, делаются большими. В табл. 5.1 показаны примеры преобразования имен
атрибутов стиля в имена свойств объекта style.
Таблица 5.1. Примеры преобразования атрибутов стиля в свойства объекта
style
Атрибут стиля |
Свойство объекта style |
background-attachment |
backgroundAttachment |
border-bottom-color |
borderBottomColor |
font-family |
fontFamily |
z-index |
zIndex |
Присваивая этим свойствам нужные значения, мы можем менять внешний вид
элемента страницы. Нужно только помнить, что значения этих свойств должны иметь
тот же формат, что и значения соответствующих им атрибутов
Пример 1
var pObject = document.all["р"]; pObject.style.fontSize = "24pt";
Этот небольшой сценарий задаст для абзаца с именем р размер шрифта равный 24
пунктам.
Пример 2
А вот HTML-код небольшой Web-странички. При наведении мыши на содержащийся в
ней текстовый абзац вокруг него появляется рамка.
<HTML> <HEAD>
<TITLE>Текст с рамкой</TITLE> <SCRIPT
TYPE="text/javascript"> function pOnMouseOver()
{
var pObject = document.all["p"]; pObject.style.borderLeftColor = "#000000";
pObject.style.borderTopColor = "#000000"; pObject.style.borderRightColor =
"#000000"; pObject.style.borderBottomColor = "#000000"; }
function pOnMouseOut() { var pObject = document.all["p"];
pObject.style.borderLeftColor = "#FFFFFF"; pObject.style.borderTopColor =
"#FFFFFF"; pObject.style.borderRightColor = "#FFFFFF";
pObject.style.borderBottomColor = "#FFFFFF"; } </SCRIPT> </HEAD>
<BODY>
<P ID="p" STYLE="border: thin solid #FFFFFF"ONMOUSEOVER="pOnMouseOver();"
ONMOUSEOUT="pOnMouseOut();">Если вы наведете на меня курсор мыши, вокруг меня
появится рамка.</Р> </BODY> </HTML>
Видно, что мы присвоили событиям onMouseOver (наведение курсора мыши на
элемент страницы) и onMouseOut ("увод" курсора мыши с него) функции-обработчики,
которые и выполняют задание новых параметров стиля абзаца.
Народ предупреждает!
Мы могли бы написать функции-обработчики событий и так:
function pOnMouseOver() {
var pObject = document.all["p"];
pObject.style.border = "thin solid #000000"; }
function pOnMouseOut() { var pObject = document.all["p"];
pObject.style.border = "thin solid #FFFFFF"; }
но такой код не работал бы в Opera. He любит этот Web-обозреватель
комплексные атрибуты стилей, наподобие border, и соответствующие им свойства
объекта style...
Как временно скрыть элемент страницы? Проблема
Мне нужно временно скрыть элемент Web-страницы, а потом снова вывести его на
экран. Как это сделать?
Решение
Объект style поддерживает свойства display и visibility. Они позволяют
временно скрыть элемент страницы, но делают это по-разному.
Свойство visibility просто скрывает элемент страницы, делая его невидимым, но
при этом не убирает его со страницы. То есть, если мы, скажем, скроем с помощью
этого свойства абзац, то он исчезнет со страницы, но вместо него будет
отображаться пустое пространство. Нужно иметь это в виду.
Вот все допустимые значения свойства visibility объекта style:
"hidden" — элемент страницы скрыт; "visible" -— элемент страницы
виден;
"inherit" — элемент страницы виден, если виден его родитель, и
наоборот.
Что касается свойства display объекта style, то оно также позволяет скрыть
элемент страницы, хотя его назначение несколько иное. Это свойство позволяет
задать, как элемент страницы отображается на ней: в виде блочного элемента, в
виде встроенного элемента, в виде строки таблицы и пр. Профессиональные
Web-дизайнеры говорят, что свойство display задает поведение элемента
страницы.
Доступных значений этого свойства очень много:
"none" — элемент вообще не будет отображаться на странице, словно он и не
задан в ее HTML-коде (это главное отличие свойства display от свойства
visibility);
"inline" — элемент страницы ведет себя как отдельный символ
текста (встроенный элемент);
"block" — элемент страницы ведет себя как абзац текста (блочный элемент);
"list-item" — элемент страницы ведет себя как пункт списка;
"run-in" — встраивающийся элемент. Если за таким элементом
следует блочный элемент, он становится первым символом блочного элемента в
противном случае он сам становится блочным элементом;
"compact" — компактный элемент. Если за таким элементом следует блочный
элемент, он форматируется как однострочный встроенный элемент и помещается левее
блочного элемента. В противном случае он сам форматируется как блочный
элемент;
"marker" — маркер списка;
" table" — таблица; "inline-table" — таблица, отформатированная как
встроенный элемент; "table-row-group"—секция тела таблицы;
"table-header-group" — секция "шапки" таблицы;
"table-footer-group" — секция "поддона" таблицы;
"table-row" —строка таблицы;
"tabie-column-group"— определение группы столбцов таблицы (формируется с
помощью парного тега <colgroup> и служит для задания параметров сразу
нескольких столбцов);
"table-column" — определение столбца таблицы (формируется с
помощью парного тега <col> и служит для задания параметров отдельного
столбца);
" table-cell" — ячейка таблицы;
"table-caption" —заголовок таблицы.
Народ предупреждает!
Internet Explorer поддерживает только значения "none", "inline", "block",
"list-item", "table-header-group" и "table-footer-group". Причем поддержка
значения "table-footer-group" появилась в версии 5.5, а остальных — в версии
5.
Так вот, свойство display позволяет скрыть элемент страницы полностью, словно
он и не был определен в HTML-коде страницы. Для этого достаточно присвоить этому
свойству значение "none". Но чтобы вернуть ему видимость, придется вспомнить,
чем же был этот элемент страницы до скрытия: встроенным, блочным, таблицей или
маркером списка. И присвоить свойству display соответствующее значение.
Народ советует
Если нужно временно скрыть свободно позиционируемый контейнер (о манипуляциях
ими будет рассказано в главе 10), то можно использовать как свойство visibility,
так и свойство display— оба дают один и тот же эффект. Лучше, конечно,
использовать свойство visibility— с ним меньше проблем.
Пред. - След. »