Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.118.145.114] |
|
Сообщ.
#1
,
|
|
|
Введение:
Не все знают, но HTML появился раньше XML. Так вот, давным давно консорциум W3C выпустил стандарт XML. В связи с чем решили переработать язык HTML под стандарты XML, так появился XHTML, на котором написана большая часть современных сайтов (подчёркиваю - современных). Язык XHTML содержит в себе список элементов и аттрибутов тот же, что и HTML 4.01. Тема: Чтобы писать на XHTML (что желательно), требуется следовать некоторым правилам. Хоть браузеры и забивают на неаккуратный HTML код, но XHTML требует более строгие правила синтаксиса: Все имена элементов и атрибутов - в нижнем регистре - В XML в именах элементов и атрибутов учитывается регистр, т.е. img, Img и IMG при внимательном анализе вдруг оказываются разными элементами. Когда HTML переработали в XHTML, все элементы решено было писать в нижнем регистре. Создавая XHTML документы, внимательно и вдумчиво всмотритесь и убедитесь, что все теги и имена атрибутов находятся в нижнем регистре. Значения атрибутов - в кавычках - В XHTML обязательно нужно заключать все значения атрибутов в кавычки. Разрешаются и двойные (") и одинарные (') кавычки. Завершение элемента - В HTML можно опускать закрывающий тег некоторых блочных элементов (например p и li). Начального тега нового элемента вполне достаточно. Но не в XHTML, хренушки, браузер отравит вас фтопку и самоуничтожится... Шутка естественно, браузер промолчит, но затаит на Вас злобу. Пустые элементы - Завершать нерадивому кодеру придётся и не завершаемые элементы Как? Да очень просто! Существующие одиночные (или пустые, не завершаемые, как я раньше выразился) элементы (например hr, br, img и т.д.) придётся добивать косой чертой (то бишь слешем) - <br/>, <hr/>, <img/>. Также не надо забывать, что парные элементы закрывать не стоит (т.е. нельзя) - так например тег <script> должен иметь парный ему </script> и синтаксис <script src="script.js" /> - доведёт браузер до белого коления, так же как и закрытие непарных тегов способом <hr></hr>. Но это ещё не всё, некоторые старые и сварливые браузеры могут ругаться на такой синтаксис, поэтому чтобы избежать этого, мы просто добавляем пробел перед слешем, тобишь так: <br />, <hr /> и так далее, и тому подобное... Какие бывают пустые элементы? Ща вспомню... Ммм... Ах, да, вот: <area />, <base />, <basefont />, <br />, <col />, <frame />, <hr />, <img />, <input />, <isindex />, <link />, <meta /> и <param /> Явное указание значений атрибутов Есть много сокращённых атрибутов, таких как cheked и nowrap. Консорциум W3C решил добить бедных программеров и сказал им, что браузеры требуется убедить что cheked действительно равно checked и так далее. То есть вместо простого cheked мы пишем checked="checked" - всё просто! Так что мы берём и убеждаем браузеры следующими способами: checked="checked", compact="compact", declare="declare", defer="defer", disabled="disabled", ismap="ismap", multiple="multiple", noshade="noshade", noresize="noresize", nowrap="nowrap", readonly="readonly" и selected="selected" Требования вложенности Дорогой наш XHTML говорит "низзя" на то, что в HTML'е было лишь частью спецификации: 1) Не вставляй один тег a в другой a всуе. 2) Да не содержит pre элементы img, object, applet, big, small, sub, sup, font, basefont. 3) Да незринет благодать на того, кто не будет совать одну form в другую form. 4) Провались сквозь землю тот, кто вставит в button теги a, form, input, select, textarea, label, button, iframe, isindex. 5) И наконец label не должен содержать другие элементы label. Символьные сущности Придётся смириться и писать в XHTML вместо & - & ;(без пробелов между названием символа и точкой с запятой), вместо " - " ;(тоже самое - без пробела) и так далее... То если мы раньше в HTML могли спокойно позволить себе писать: <img src="Kane&Lynch.tar.gz" /> Теперь пишем только так: <img src="Kane& ;Lynch" /> Защита скриптов Раньше обычной практикой являлось заключение скриптов и таблиц стилей в комментарии (<!-- -->). Увы и ах - XML тупо забивает на всё, что внутри комментариев, поэтому, чтобы не возникло глупого вопроса - "почему у меня не работает то, что находиться внутри комментария" - пишем следующее: <script language="JavaScript"> <![CDATA[ ... тут скрипт ... ]]> </script> Усё. Атрибуты id и name Всё просто - атрибут name объявлен устаревшим в XHTML для тегов a, applet, form, frame, iframe, img и map и вместо него используем id. Не пугайтесь, всё прекрасно работает во всех современных браузерах (я говорю про тех людей, которые не пользуется "чтуками" времён Netscape 4) Наверное на этом можно завершить мой обзор и сказать волшебное слово return 0; Если Вы заметили что-то, что я написал не верно или хотите дополнить - пишите Надеюсь я хоть кому-то окажусь полезным этим топиком |
Сообщ.
#2
,
|
|
|
Цитата Serafim @ Атрибуты id и name Всё просто - атрибут name объявлен устаревшим в XHTML фигасе, просто. это так перевели Цитата Finally, note that XHTML 1.0 has deprecated the name attribute of the a, applet, form, frame, iframe, img, and map elements, and it will be removed from XHTML in subsequent versions. увольте, это я только краем глаза посмотрел. |
Сообщ.
#3
,
|
|
|
Цитата zera @ Цитата (Serafim @ Вчера, 23:30) Атрибуты id и name Всё просто - атрибут name объявлен устаревшим в XHTML фигасе, просто. это так перевели Цитата Finally, note that XHTML 1.0 has deprecated the name attribute of the a, applet, form, frame, iframe, img, and map elements, and it will be removed from XHTML in subsequent versions. увольте, это я только краем глаза посмотрел. Сорь, пропустил "для тегов a, applet, form, frame, iframe, img и map" Спасибо, как-то просто слишком долго писал - начал глючить |
Сообщ.
#4
,
|
|
|
Зачем переписывать "Что такое XHTML" ?
|
Сообщ.
#5
,
|
|
|
Цитата Aleman @ Зачем переписывать "Что такое XHTML" ? Такой топик уже здесь был Или хочешь сказать не бывает таких людей, кто не знает что это такое? Ели топик не нужен - так пусть админы и скажут, значит я впустую пол часа убил |
Сообщ.
#6
,
|
|
|
Не сомневаюсь, что для тебя это оказалось очень полезным - разобраться и кратко изложить. Просто в инете полно статей по данной тематике, все давно описано и разжевано.
|
Сообщ.
#7
,
|
|
|
прокомментирую
Цитата Serafim @ Пустые элементы у элементов в спецификации xhtml прописывается имеет ли тег закрывающую пару. если имеет, то нельзя использовать конструкцию <tag />, только <tag></tag> например тег script обязан иметь закрывающий тег, потому конструкция типа <script type="text/javascript" src="blablabla.js" /> неверна и может приводить к ошибкам. верно и обратное, поведение браузера при использовании <hr></hr> непредсказуемо. Цитата Serafim @ Требования вложенности опять же смотрим dtd <!ELEMENT a %a.content;> все что в него можно запихать описано <!ENTITY % a.content "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*"> Цитата Serafim @ Защита скриптов а вот это мне вообще давно непонятно. сейчас еще остались браузеры, игнорирующие содержимое элемента script? ведь комментирование, собственно, с этим и связано, чтобы те, у кого браузер про js ничего не знает не видели текста скрипта на странице Цитата Serafim @ так пусть админы и скажут, значит я впустую пол часа убил тю, а то ты не для себя писал? |
Сообщ.
#8
,
|
|
|
Цитата zera @ тю, а то ты не для себя писал? А я вот почитаю... Добавлено А то, что в инете куча статей, так что теперь надо весь форум потереть и заполнить его ссылками на уже существующие в интернете статьи? Добавлено |
Сообщ.
#9
,
|
|
|
Ребят,мож кто знает, где можно скачать\посмотреть исходники конвертера HTML -> XHTML ?
Хотелось бы ознакомится. На любом языке. |
Сообщ.
#10
,
|
|
|
А такой существует?
|
Сообщ.
#11
,
|
|
|
Цитата Serafim @ А такой существует? почему нет? по крайней мере html -> xml писать приходилось, а там и недалеко |
Сообщ.
#12
,
|
|
|
up
|