CSS. Каскадные таблицы стилей. Подробное руководство.Символ-Плюс 2008 |
Страница 17 из 493 элементы не могут происходить от строковых* В CSS нет ограничения на вложение ролей» Посмотрим, как это работает, обратившись к CSS-свонству display* Вы, вероятно, заметили, что оно имеет много значений, но здесь мы рассмотрим только три:block, inline и list-item* Все остальные значения подробно описаны в главе 2 и главе 7. Сначала сосредоточимся на значениях block и inline. Рассмотрим следующую разметку: <body> <р>Это абзац со <егл>строковым элементом</ет> в нем,</р> </body> Здесь мы имеем два блочных элемента (body и р) и строковый элемент (em). Согласно спецификации XHTML em может происходить от р, но не наоборот. Обычно иерархия XHTML составляется таким образом, что строковые элементы могут происходить от элементов уровня блока, ио не наоборот. Напротив, в CSS нет подобных ограничений* Вы можете оставить существующую разметку, но изменить роли формирования представления этих двух элементов следующим образом: р {display:inline;} em {display:block;} Этим вы заставите элементы генерировать контейнер блока внутри контейнера строки. Это совершенно законно и не нарушает ни одной спецификации* Проблема может возникнуть, если вы попытаетесь изменить порядок вложения элементов иа обратный: <етхр>Это абзац, ошибочно включенный в строковый элемент. </рх/ега> Независимо от того, что вы делаете с ролями формирования представления посредством CSS, в XHTML это недопустимо. ![]() |
