Раньше я размышлял об этом при разработке веб-сайтов.
Мой вывод был, и я считаю, что он остается в силе и сегодня, что, хотя XHTML и CSS должны быть изолированы друг от друга как контент и презентация соответственно, реальность этого вопроса все еще делает внешний вид веб-сайта в значительной степени зависимым. на структуру документа - т.е. разметку, XHTML - и, следовательно, один только CSS не даст вам волшебную палочку, которая заставит ваш сайт полностью изменить свой внешний вид на основе таблицы стилей. Однако мне бы хотелось, чтобы это было так - конечно, это главная цель CSS. И, конечно, в этом была бы прелесть - поскольку каждый из них полностью изолирован от другого, разработчики веб-сайта могут в спокойной обстановке программировать структуру документов веб-сайта, в то время как авторы CSS могут работать параллельно и писать таблицы стилей. Затем оба комбинируются, и с осознанием того, что разметку больше не нужно менять. Это теория в любом случае.
На практике это часто не работает - поскольку документ имеет семантику сверху вниз (слева направо (обычно)), например, становится трудно создать элемент, появляющийся в нижней части структуры документа. , отображаются в верхней части страницы браузера для пользователя. Ограничения работают против теории.
Из-за вышеуказанных последствий и некоторых других реальных ограничений CSS и технологий разметки я решил просто рассматривать разметку как нечто среднее между контентом и стилем. То есть к сожалению, некоторая разметка будет диктовать стиль, независимо от таблицы стилей - последовательность элементов равна единице (см. выше), ограничения нумерации страниц и т. д. - и поэтому, хотя большая часть структуры может быть изолирована от ее внешнего вида, часть этого внешнего вида будет продиктовано этим. По этой причине, если мы не рассматриваем сценарии на стороне клиента (которые могут помочь в стилизации путем переупорядочения элементов документа) - один из способов сделать это - использовать XML в качестве контента, XHTML как гибридный слой в стиле контента, и CSS, чтобы наконец продиктовать внешний вид.
Откуда это XML? Что ж, вы преобразуете (либо в браузере, либо на стороне сервера) его с помощью XSLT в документ XHTML, который вы считаете уместным в процессе оформления. То есть если у вас есть список исполнителей из 1000 записей, и вы хотите настроить внешний вид страницы, вы используете следующий контент XML:
<artists>
<artist name="Moby" />
<artist name="Cocorosie" />
<!-- and so on -->
</artists>
Это считается неизменным контентом, независимо от конечного стиля - частью точки отделения контента от презентации, чего вы не могли бы сделать полностью с XHTML, потому что CSS не может делать определенные вещи. Однако с помощью XSLT вы можете в дальнейшем преобразовать вышеприведенное в желаемую разметку (затем вы можете применить CSS):
<xsl:transform>
<!-- XSLT is beyond the scope of this... -->
</xsl:transform>
преобразует XML в нечто вроде:
<h1>Artists</h1>
<h2>Page 1 of 10</h1>
<ul>
<li><a>Moby</a></li>
<!-- Only 100 artists per page -->
</ul>
А потом ты его стилизируешь.
Суть в том, что вы можете контролировать каждую точку преобразования вашего необработанного содержимого базы данных в конечное приложение конечного пользователя.
Многое из того, что XSLT делает с XML, вместо этого может быть сделано с помощью JavaScript на XHTML, но я считаю, что сценарии на стороне клиента являются дополнением, а не заменой таких вещей, как XSLT. С другой стороны, Firefox и большинство других современных браузеров могут выполнять XSLT на стороне клиента, что стирает различие между сценариями и обслуживанием документов.