JavaScript. Подробное руководство, 6-е издание, стр. 239

<b>  &lt;!-- Это еще одно окно с другими позицией, цветом и шрифтом --&gt;</b>

<b>  &lt;div class=&quot;window&quot; style=&quot;left: 75px; top: 110px; z-index: 20;&quot;&gt;</b>

<b>    &lt;div class=&quot;titlebar&quot;&gt;Еще одно окно&lt;/div&gt;</b>

<b>    &lt;div class=&quot;tra content&quot;</b>

<b>        style=&quot;background-color:#ccc; font-weight:bold;&quot;&gt;</b>

<b>      Это еще одно окно. Значение атрибута &lt;i&gt;z-index&lt;/i&gt; этого окна заставляет его расположиться поверх другого. За счет CSS-стилей содержимое этого окна будет выглядеть полупрозрачным в броузерах, поддерживающих такую возможность.</b>

<b>    &lt;/div&gt;</b>

<b>  &lt;/div&gt;</b>

<b>&lt;/body&gt;</b>

Основной недостаток этого примера в том, что таблица стилей задает фиксированный размер всех окон. Так как заголовок и содержимое окна должны точно позиционироваться внутри окна, изменение размера окна требует изменения значений различных свойств позиционирования во всех трех правилах, определенных в таблице стилей. Это трудно сделать в статическом HTML-документе, но все становится проще, если использовать сценарий, устанавливающий все необходимые свойства. Эта возможность рассматривается в следующем разделе.

16.3. Управление встроенными стилями

Самый простой способ управления стилями CSS - это манипулирование атрибутом

<b>style</b>
отдельных элементов документа. Как и для большинства HTML-атрибутов, атрибуту
<b>style</b>
соответствует одноименное свойство объекта
<b>Element</b>
, и им можно манипулировать в сценариях на языке JavaScript. Однако свойство
<b>style</b>
имеет одну отличительную особенность: его значением является не строка, а объект
<b>CSSStyleDeclaration</b>
. Свойства этого объекта представляют CSS-свойства, определенные в HTML-атрибуте
<b>style</b>
. Например, чтобы вывести содержимое текстового элемента е крупным, полужирным шрифтом синего цвета, можно выполнить следующие операции для записи желаемых значений в свойства, которые соответствуют свойствам стиля
<b>font-size, font-weight</b>
и
<b>color</b>
:

<b>е.style.fontSize = &quot;24pt&quot;; e.style.fontWeight = &quot;bold&quot;; e.style.color = &quot;blue&quot;;</b>

При работе со свойствами стиля объекта

<b>CSSStyleDeclaration</b>
не забывайте, что все значения должны задаваться в виде строк. В таблице стилей или атрибуте
<b>style</b>
можно написать:

<b>position: absolute; </b>

<b>font-family: sans-serif; </b>

<b>background-color: №ffffff;</b>

Чтобы сделать то же самое для элемента е в JavaScript, необходимо заключить все значения в кавычки:

<b>е.style.position = &quot;absolute&quot;; </b>

<b>е.style.fontFamily = &quot;sans-serif&quot;; </b>

<b>e.style.backgroundColor = &quot;flffffff&quot;;</b>

Обратите внимание, что точки с запятыми не входят в строковые значения. Это точки с запятой, употребляемые в синтаксисе языка JavaScript. Точки с запятой, используемые в таблицах стилей CSS, не нужны в строковых значениях, устанавливаемых с помощью JavaScript.

Кроме того, помните, что во всех свойствах позиционирования должны быть указаны единицы измерения. То есть нельзя устанавливать свойство

<b>left</b>
подобным образом:

<b>е.style.left = 300; // Неправильно: это число, а не строка</b>

<b>е.style.left = &quot;300&quot;; // Неправильно: отсутствуют единицы измерения</b>

Единицы измерения обязательны при установке свойств стиля в JavaScript - так же, как при установке свойств стиля в таблицах стилей. Ниже приводится правильный способ установки значения свойства left элемента е, равным 300 пикселам:

<b>е.style.left = &quot;300px&quot;;</b>

Чтобы установить свойство

<b>left</b>
равным вычисляемому значению, обязательно добавьте единицы измерения в конце вычислений:

<b>е.style.left = (х0 + left_margin + left_border + left_padding) + &quot;px&quot;;</b>

Как побочный эффект, добавление строки с единицами измерения преобразует вычисленное значение из числа в строку.

Соглашения об именах: CSS-свойства в JavaScript

Многие CSS-свойства стиля, такие как

<b>font-size</b>
, содержат в своих именах дефис. В языке JavaScript дефис интерпретируется как знак минус, поэтому нельзя записать выражение, приведенное ниже:

<b>е.style.font-size = &quot;24pt&quot;; // Синтаксическая ошибка!</b>

Таким образом, имена свойств объекта

<b>CSSStyleDeclaration</b>
слегка отличаются от имен реальных CSS-свойств. Если имя CSS-свойства содержит дефисы, имя свойства объекта
<b>CSSStyleDeclaration</b>
образуется путем удаления дефисов и перевода в верхний регистр буквы, непосредственно следующей за каждым из них. Другими словами, CSS-свойство
<b>border-left-width</b>
доступно через свойство
<b>borderLeftWidth</b>
, а к CSS-свойству
<b>font-family</b>
можно обратиться следующим образом:

<b>е. style. fontFamily = &quot;sans-serif;</b>

Кроме того, когда CSS-свойство, такое как

<b>float</b>
, имеет имя, совпадающее с зарезервированным словом языка JavaScript, к этому имени добавляется префикс «css», чтобы создать допустимое имя свойства объекта
<b>CSSStyleDeclaration</b>
. То есть, чтобы прочитать или изменить значение CSS-свойства
<b>float</b>
элемента, следует использовать свойство
<b>cssFloat</b>
объекта
<b>CSSStyleDeclaration</b>
.