Почему содержимое элемента стиля HTML не является стандартным XML? - PullRequest
1 голос
/ 30 октября 2009

Я новичок в HTML, но с XML у меня долгая история. Мне кажется странным, что элемент стиля HTML выглядит следующим образом.

<style type="text/css">
    .style1 { width: 250px; }
    .style2 { width: 20px; }
</style>

Я бы подумал, что ту же информацию можно было бы получить в более удобном для XML формате. Например, может быть, это

<style type="text/css">
    <style1 width="250px"/>
    <style2 width="25px"/>
</style>

Мне кажется, что последний будет проанализирован синтаксическим анализатором XML, тогда как первый потребует пользовательского кода синтаксического анализа. Это кажется настолько нехарактерным, что мне интересно, есть ли на самом деле веская причина.

Спасибо

Michael

Ответы [ 5 ]

2 голосов
/ 30 октября 2009

Главным образом потому, что он предшествует XML. См. Раздел 7.2.3.3 тезиса Хокон Вьюм Ли: http://people.opera.com/howcome/2006/phd/#h-275

2 голосов
/ 30 октября 2009

CSS это другой язык. XHTML просто позволяет его встраивать, так как это контент. Просто представьте, что JavaScript находится в XML-документе.

Не говоря уже о том, что использование XML вызовет проблемы с DTD и будет очень многословным, если CSS прост.

Вот немного истории CSS: http://en.wikipedia.org/wiki/Cascading_Style_Sheets#History

1 голос
/ 30 октября 2009

Потому что синтаксис CSS намного чище, лаконичнее и выразительнее. особенно наличие нескольких селекторов в одном правиле было бы чрезвычайно утомительно в языке на основе XML. (Его можно добавить к атрибуту, но это было бы просто уродливым способом встроить огромную часть существующего синтаксиса CSS в атрибут или значение тега XML).

0 голосов
/ 30 октября 2009

Как уже говорили другие, CSS - это совершенно другой язык. Это не соответствует синтаксису XML. CSS-парсеры не являются XML-парсерами. Для правильного встраивания Javascript и CSS в документы XHTML заключите их в раздел CDATA. CSS также может быть заключен в комментарии XML, так как он, как правило, не имеет XML-совместимых символов, как Javascript.

Вот хорошая статья по теме. https://developer.mozilla.org/en/Properly_Using_CSS_and_JavaScript_in_XHTML_Documents

0 голосов
/ 30 октября 2009

В этом случае

<style type="text/css">
    .style1 { width: 250px; }
    .style2 { width: 20px; }
</style>

стили CSS являются содержимым стиля элемента. Сам CSS не является HTML

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...