ИНФОРМАЦИЯ,    ДИЗАЙН,    ПЕРЕВОДЫ,    РЕКЛАМА   .   .   .
w a p - с а й т
Информационный портал
Сегодня:  
admin@aranea.ru
+79068922256

  aranea.ru || Спецификация CSS2 | 10.3. Расчет ширины и полей.

10.3. Расчет ширины и полей.

10.3.1. Внутристрочные незаменяемые элементы.
10.3.2. Внутристрочные заменяемые элементы.
10.3.3. Блочные незаменяемые элементы.
10.3.4. Блочные заменяемые элементы при нормальном размещении.
10.3.5. Плавающее смещение незаменяемых элементов.
10.3.6. Плавающее смещение заменяемых элементов.
10.3.7. Абсолютно позиционированные, незаменяемые элементы.
10.3.8. Абсолютно позиционированные, заменяемые элементы.

Рассчитанные значения для свойств элемента 'width', 'margin-left', 'margin-right', 'left' и 'right' зависят от типа сгенерированного блока и друг друга. В принципе, рассчитанные значения являются тем же самым, что и определенные значения с замененным 'auto' на другое приемлемое значение, но есть исключения. Необходимо различать следующие ситуации:

  1. внутристрочные незаменяемые элементы
  2. внутристрочные заменяемые элементы
  3. блочные незаменяемые элементы с нормальным размещением
  4. блочные заменяемые элементы с нормальным размещением
  5. незаменяемые элементы с плавающим смещением
  6. заменяемые элементы с плавающим смещением
  7. абсолютно позиционированные, незаменяемые элементы
  8. абсолютно позиционированные, заменяемые элементы

Пункты 1-6 включают относительное позиционирование.

10.3.1. Внутристрочные незаменяемые элементы.

Свойство 'width' не применяется. Определенное значение 'auto' для 'left', 'right', 'margin-left' или 'margin-right' становится рассчитанным значением, равным '0'.

10.3.2. Внутристрочные заменяемые элементы.

Определенное значение 'auto' для 'left', 'right', 'margin-left' или 'margin-right' становится рассчитанным значением '0'. Определенное значение 'auto' для 'width' представляет внутреннюю ширину элемента, как рассчитанную.

10.3.3. Блочные незаменяемые элементы.

Если 'left' или 'right' даны, как 'auto', то их рассчитанное значение равно 0. Для других свойств должны выполняться следующие ограничения:

'margin-left' + 'border-left-width' + 'padding-left' + 'width' + 'padding-right' + 'border-right-width' + 'margin-right' = ширина объемлющего блока

(Если стиль границы определен, как 'none', то используйте '0' для ширины границы). Если все, выше сказанное, имеет определенное значение, отличное от 'auto', то эти значения называют "жестко ограниченными", и одно из рассчитанных значений будет отличаться от его определенного значения. Если свойство 'direction' имеет значение 'ltr', то определенное значение 'margin-right' игнорируется, а значение рассчитывается так, что оно делает равенство верным. Если значение 'direction' является 'ltr', то это выполняется для 'margin-left'.

Если одна величина точно определена, как 'auto', то рассчитанное значение следует из равенства.

Если 'width' установлена, как 'auto', то любые другие значения 'auto' становится равным '0', а 'width' следует из результирующего равенства.

Если оба свойства 'margin-left' и 'margin-right' являются 'auto', то рассчитанные значения равны.

10.3.4. Блочные заменяемые элементы при нормальном размещении.

Если 'left' или 'right' установлены, как 'auto', то их рассчитанное значение равно 0. Если 'width' определена, как 'auto', то ее значение является внутренней шириной элемента. Если одно из полей установлено, как 'auto', то его рассчитанное значение подчиняется ограничениям, указанным выше. Более того, если оба поля - 'auto', то их рассчитанные значения равны.

10.3.5. Плавающее смещение незаменяемых элементов.

Если 'left', 'right', 'width', 'margin-left', или 'margin-right' установлены, как 'auto', то их рассчитанное значение равно '0'.

10.3.6. Плавающее смещение заменяемых элементов.

Если 'left', 'right', 'margin-left' или 'margin-right' определены, как 'auto', то их рассчитанное значение равно '0'. Если 'width' установлена, как 'auto', то ее значение является внутренней шириной элемента.

10.3.7. Абсолютно позиционированные, незаменяемые элементы.

Ограничения, которые определяют рассчитанные значения для этих элементов, следующие:

'left' + 'margin-left' + 'border-left-width' + 'padding-left' + 'width' + 'padding-right' + 'border-right-width' + 'margin-right' + 'right' = ширина объемлющего блока

(Если стиль границы является 'none', то используйте '0', как ширину границы). Решение для этого ограничения осуществляется через ряд замещений в следующем порядке:

  1. Если 'left' имеет значение 'auto', когда 'direction' - 'ltr', то замените 'auto' расстоянием от левого края объемлющего блока до левого края поля гипотетического блока, который был бы первым блоком элемента, если бы его свойство 'position' было бы 'static'. (Несмотря на фактические расчеты такого блока, устройства вывода свободны в выборе его возможного положения). Значение – отрицательное, если гипотетический блок находится слева от объемлющего блока.
  2. Если 'right' имеет значение 'auto', когда 'direction' - 'rtl', то замените 'auto' расстоянием от правого края объемлющего блока до правого края поля такого же гипотетического блока, как упомянуто выше. Значение – положительное, если гипотетический блок расположен слева от края объемлющего блока.
  3. Если 'width' установлена, как 'auto', то замените любые оставшиеся 'auto' для 'left' или 'right' на '0'.
  4. Если 'left', 'right' или 'width' установлены, как (все еще) 'auto', то замените любое 'auto' в 'margin-left' или 'margin-right' на '0'.
  5. Если в этой точке оба значения 'margin-left' и 'margin-right' все еще 'auto', то решите уравнение для жесткого ограничения, при котором оба поля должны иметь одинаковые значения.
  6. Если в этой точке есть только одно левое 'auto', то решите уравнение для такого значения.
  7. Если в этой точке значения жестко ограничены, то игнорируйте значение либо для 'left' (в случае, когда 'direction' – 'rtl'), либо для 'right' (в случае, когда 'direction' – 'ltr'), и решите уравнение для такого значения.

10.3.8. Абсолютно позиционированные, заменяемые элементы.

Эта ситуация похожа на предыдущую, за исключением того, что элементы имеют внутреннюю ширину. Последовательность замен следующая:

  1. Если 'width' - 'auto', то замените внутреннюю ширину элемента.
  2. Если 'left' имеет значение 'auto', когда 'direction' - 'ltr', то замените 'auto' расстоянием от края левого поля гипотетического блока, который имел бы первый блок элемента, если свойство 'position' имело бы значение 'static'. (Несмотря на фактические расчеты блока, устройства вывода имеют свободу в выборе возможного положения.) Значение – отрицательное, если гипотетический блок находится слева от объемлющего блока.
  3. Если 'right' имеет значение 'auto', когда 'direction' – 'rtl', то замените 'auto' расстоянием от правого края объемлющего блока до края правого поля того же гипотетического блока, как сказано выше. Значение – положительное, если гипотетический блок находится слева от края объемлющего блока.
  4. Если 'left' или 'right' - 'auto', то замените любое 'auto' для 'margin-left' или 'margin-right' значением '0'.
  5. Если в этой точке оба 'margin-left' и 'margin-right' все еще - 'auto', то решите уравнение с жестким ограничением, при котором два поля должны иметь одинаковые значения.
  6. Если в этой точке есть только одно левое 'auto', то решите уравнение для такого значения.
  7. Если в этой точке значения жестко ограничены, то игнорируйте значения либо для 'left' (в случае, когда 'direction' – 'rtl'), либо для 'right' (в случае, когда 'direction' – 'ltr'), и решите уравнение для такого значения.
← Назад | Вперед →
Copyright © 2006 -  aranea.ru