На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Vasya2000, Serafim, fatalist
  
> Отличия HTML от XHTML , Начинающим будет полезно знать
    Введение:
    Не все знают, но 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, хренушки, браузер отравит вас фтопку и самоуничтожится... Шутка естественно, браузер промолчит, но затаит на Вас злобу.

    Пустые элементы
    - Завершать нерадивому кодеру придётся и не завершаемые элементы :blink: Как? Да очень просто! Существующие одиночные (или пустые, не завершаемые, как я раньше выразился) элементы (например 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 /> :wacko:

    Явное указание значений атрибутов
    Есть много сокращённых атрибутов, таких как 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 вместо & - &amp ;(без пробелов между названием символа и точкой с запятой), вместо " - &quot ;(тоже самое - без пробела) и так далее... То если мы раньше в HTML могли спокойно позволить себе писать:
    <img src="Kane&Lynch.tar.gz" />
    Теперь пишем только так:
    <img src="Kane&amp ;Lynch" />

    Защита скриптов
    Раньше обычной практикой являлось заключение скриптов и таблиц стилей в комментарии (<!-- -->). Увы и ах - XML тупо забивает на всё, что внутри комментариев, поэтому, чтобы не возникло глупого вопроса - "почему у меня не работает то, что находиться внутри комментария" - пишем следующее:
    <script language="JavaScript">
    <![CDATA[
    ... тут скрипт ...
    ]]>
    </script>

    Усё.

    Атрибуты id и name
    Всё просто - атрибут name объявлен устаревшим в XHTML для тегов a, applet, form, frame, iframe, img и map и вместо него используем id. Не пугайтесь, всё прекрасно работает во всех современных браузерах (я говорю про тех людей, которые не пользуется "чтуками" времён Netscape 4)



    Наверное на этом можно завершить мой обзор и сказать волшебное слово return 0;

    Если Вы заметили что-то, что я написал не верно или хотите дополнить - пишите ;) Надеюсь я хоть кому-то окажусь полезным этим топиком :)
    Сообщение отредактировано: Serafim -
      Цитата 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.

      увольте, это я только краем глаза посмотрел.
        Цитата 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" :wall: Спасибо, как-то просто слишком долго писал - начал глючить :rolleyes:
          Зачем переписывать "Что такое XHTML" ?
            Цитата Aleman @
            Зачем переписывать "Что такое XHTML" ?

            Такой топик уже здесь был :blink: Или хочешь сказать не бывает таких людей, кто не знает что это такое? Ели топик не нужен - так пусть админы и скажут, значит я впустую пол часа убил >:(
            Сообщение отредактировано: Serafim -
              Не сомневаюсь, что для тебя это оказалось очень полезным - разобраться и кратко изложить. Просто в инете полно статей по данной тематике, все давно описано и разжевано.
                прокомментирую
                Цитата Serafim @
                Пустые элементы

                у элементов в спецификации xhtml прописывается имеет ли тег закрывающую пару. если имеет, то нельзя использовать конструкцию <tag />, только <tag></tag>
                например тег script обязан иметь закрывающий тег, потому конструкция типа
                ExpandedWrap disabled
                  <script type="text/javascript" src="blablabla.js" />

                неверна и может приводить к ошибкам.
                верно и обратное, поведение браузера при использовании <hr></hr> непредсказуемо.
                Цитата Serafim @
                Требования вложенности

                опять же смотрим dtd
                ExpandedWrap disabled
                  <!ELEMENT a %a.content;>

                все что в него можно запихать описано
                ExpandedWrap disabled
                  <!ENTITY % a.content
                     "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc.inline;)*">

                Цитата Serafim @
                Защита скриптов

                а вот это мне вообще давно непонятно. сейчас еще остались браузеры, игнорирующие содержимое элемента script?
                ведь комментирование, собственно, с этим и связано, чтобы те, у кого браузер про js ничего не знает не видели текста скрипта на странице
                Цитата Serafim @
                так пусть админы и скажут, значит я впустую пол часа убил

                тю, а то ты не для себя писал?
                  Цитата zera @
                  тю, а то ты не для себя писал?

                  А я вот почитаю... :yes:

                  Добавлено
                  А то, что в инете куча статей, так что теперь надо весь форум потереть и заполнить его ссылками на уже существующие в интернете статьи? :whistle:

                  Добавлено
                    Ребят,мож кто знает, где можно скачать\посмотреть исходники конвертера HTML -> XHTML ?
                    Хотелось бы ознакомится. На любом языке.
                      А такой существует? :blink:
                        Цитата Serafim @
                        А такой существует?

                        почему нет?
                        по крайней мере html -> xml писать приходилось, а там и недалеко :)
                          up :)
                          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                          0 пользователей:


                          Рейтинг@Mail.ru
                          [ Script execution time: 0,0378 ]   [ 15 queries used ]   [ Generated: 18.04.24, 08:17 GMT ]