Библиотека Интернет Индустрии I2R.ru |
|||
|
Виды блоков и свойство displayБлоковая модель описывает вид отдельного блока, но кроме того блоки бывают различных видов. Знаете ли вы, что с помощью CSS можно делать таблицы и списки? В статье описаны объявления Все элементы образуют блоки. В глобальном плане эти элементы бывают двух видов:
Почему значения compact и run-in присутствуют в обоих видах выяснится позже. Если брать аналогии HTML, то элементы блокового уровня - параграфы, заголовки и прочь. (P, H1, TABLE), а строкового - элементы оформления (B, EM, CODE). Ну а теперь подробнее рассмотрим, как сделать элемент блокового уровня. display: blockПоддерживается всеми браузерами (какие нас интересуют). Обозначает, что элемент будет отображаться, как элемент блокового уровня. То есть можно написать стиль на элемент <EM> Вот живой пример:
display: block
А вот код: display: list-itemНе поддерживается MSIE 5. Обозначает, что элемент будет отображаться, как элемент списка. То есть слева возле элемента будет находиться точка, что соответствует UL. Вот живой пример:
display: block;
display: list-item;
А вот код: Однако, не все так просто. Разные браузеры эти точечки по разному ставят. Вот скриншоты:
Как видим, все браузеры отображают элемент по разному. Opera 5 ставит точечку внутри блока, тогда как остальные браузеры ее ставят снаружи блока (на скриншотах точка выходит даже за границы родительского блока, однако это не всегда так, если установить отступы (padding) побольше, то точечка будет внутри родительского элемента). Кроме того в Explorer 6 эта точечка меньше. Все эти несоответствия накладывают явно ограничение на использование свойства display: list-item. display: tableВ стандарте CSS2 реализовано визуальное представление таблиц с помощью стилей. Надо заметить сразу, что принципиальных отличий от таблиц в HTML 4.0 нет. То есть каждому тэгу соответ- ствует какой-нибудь атрибут свойства display. Вот этот список:
Я тут пропустил всякие малополезные элементы, типа table-footer-group (в HTML: TFOOT) и т.п. Но это большого значения не имеет, потому как в MSIE все равно таблицы хрен поддерживаются, а потому заострять на них внимания нет особого смысла. Вот живой пример такого куска кода:
display: table
display: table-cell
display: table-cell display: table-cell
display: table-cell
А вот скриншоты:
Ясно, что об использовании свойства display: table лучше забыть до той поры, пока его не внедрит Microsoft. Впрочем, ничего особо полезного в этом свойстве и нет, потому что все это можно реализовать средствами HTML, к тому же и проще. display: run-inВот и подобрались в загадочному свойству display: run-in. Сразу отмечу, что поддерживает это свойство только Opera 5. Почему же оно находится и в разделе элементов блокового уровня, и в разделе элементов строкового уровня? А потому что метод отображения этого свойства может быть как блоковым, так и строковым, в зависимости от некоторых условий. В спецификации W3С написано следующее:
Чисто ради спортивного интереса, вот скриншот из Opera 5. display: compact вообще пока никем не поддерживается (Opera 5 с багом небольшим, правда, поддерживает, но это сути не меняет). Так что на этом свойстве и вовсе останавливаться не будем Итак, подведем промежуточный итог. Переходить на таблицы, описываемые свойством CSS display: table и т.д. на данный момент не представляется возможным. Впрочем, этого нам и не надо, поскольку реализовать таблицу гораздо проще с помощью HTML. Вообще говоря, таблицы в CSS делались исключительно под XML, потому что там не заранее определенных тегов, то есть форматирование полностью возлагается на язык стилей. Наша цель уйти от табличной верстки, как таковой. C блоками мы разобрались, а потому в следующей части можно будет непосредственно перейти к визуальной модели форматирования. Продолжение следует... |
|
2000-2008 г. Все авторские права соблюдены. |
|