CSS. Каскадные таблицы стилей. Подробное руководство.Символ-Плюс 2008 |
Страница 189 из 493 ![]() Рис. 7.9* Неявное смещение в полях и отступах родителя Затем width присваивается значение, необходимое, чтобы элемент заполнил свой контейнер. Наконец, что происходит, если значение auto присвоено всем трем свойствам? Ответ прост:оба поля обращаются в нуль, а ширина становится максимальной. Это аналогично стандартной ситуации, когда значения полей или ширины явно не заданы. В этом случае по умолчанию поля становятся нулевыми, а ширине присваивается значение auto. Заметьте, что поскольку горизонтальные поля не сворачиваются, отступы, рамки и поля родительского элемента могут оказывать влияние на дочерние элементы. Это влияние косвенное и проявляется в том, что поля (и т. д.) элемента могут вызывать смещение дочерних элементов. Результаты применения следующей разметки показаны на рис. 7.9: div {padding:ЗОрх; background:silver;} р {margin:2Gpx; padding:0; background:white;} До сих пор все кажется довольно простым, и вы, наверное, уже удивляетесь, почему я говорил, что здесь могут быть какие-то сложности. У полей есть и другая сторона - отрицательная. Все верно, существует возможность задания отрицательных значений полей. В результате возникают некоторые интересные эффекты, если предположить, что агент пользователя вообще поддерживает отрицательные поля. ![]() Согласно спецификации CSS от агентов пользователя не требуется полностью поддерживать отрицательные поля. Там сказано:«Отрицательные значения для свойств полей допускаются, ио возможны зависящие от реализации ограничениям. На момент написания данной книги в броузерах имеется несколько подобных ограничений. Помните, что сумма значений семи свойств горизонтального форматирования всегда равна значению свойства width родительского элемента. Пока все свойства имеют нулевое или положительное значение, элемент никогда не может быть шире области содержимого его родителя. Однако рассмотрим следующую разметку, изображенную на рис. 7.10: |

