Оглавление

14. Отличия XHTML 1.0 от HTML 4.01

XHTML (extensible HyperText Markup Language, расширяемый язык разметки гипертекста) — это язык разметки Web-страниц, созданный на базе XML. XHTML 1.0 базируется на HTML 4.01, но приведен в соответствие с правилами XML 1.0. Обрабатывая страницу на языке HTML 4.01 Web-браузер, обнаружив ошибку, может попробовать обработать ее. XHTML 1.0 имеет более строгие правила. Web-браузер, обнаружив ошибку, должен прекратить дальнейшую обработку страницы.
Допустимые форматы для XHTML 1.0:
strict — строгий формат. Не содержит тегов и параметров, помеченных как устаревшие или не одобряемые. Объявление формата:

<!DOCTYPE html PUBLIC  "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">


Transitional — переходный формат. Содержит устаревшие теги в целях совместимости и упрощения перехода со старых версий HTML. Объявление формата:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

Frameset — аналогичен переходному формату, но содержит также теги для создания фреймов. Объявление формата:

<!DOCTYPE html PUBLIC  "-//W3C//DTD XHTML 1.0 Frameset//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">


Кроме объявления формата, XHTML требует указания пространства имен в корневом теге в параметре xmins:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">

 

В этом примере с помощью параметра lang мы также указали язык документа (lang="ru").

 

Стандарт рекомендует также указывать XML-пролог

<?xml version="1.0" encoding="windows-1251"?>

перед объявлением формата, а в заголовках ответа сервера отправлять MIME-тип appiication/xhtml+xml. Однако Web-браузер Internet Explorer в этом случае некорректно обрабатывает документ. По этой причине XML-пролог не указывают, а в заголовках ответа сервера задают MIME-тип text/html.


При использовании языка XHTML необходимо придерживаться следующих правил.

 Все названия тегов и параметров указываются в нижнем регистре.
     Неправильно:
          <P>Текст абзаца</P>
     Правильно:
          <p>Текст абзаца</p>
 Значения параметров следует обязательно указывать внутри кавычек.
     Неправильно:
          <textarea name="pole" cols=15 rows=10></textarea>
     Правильно:
          <textarea name="pole" cols="15" rows="10"></textarea>
 Если параметр не имеет значения (например, selected), то в качестве значения указывается название параметра.
     Неправильно:

    <select name="select1">
     <option value="1">Элeмeнт1</option>
     <option value="2" selected>Элемент2</option>
    </select>

     Правильно:
    <select name="select1">
      <option value="1">Элeмeнтl</option>
      <option value="2" selected="selected">Элемент2</option>
    </select>
 Необходимо строго соблюдать правильность вложенности тегов.
     Неправильно:
          <p><b>Текст</p></b>
     Правильно:
          <p><b>Текст</b></p>
 Нельзя вкладывать блочный тег (например, <р>, <div>) во внутристроч-ный (например, <b>, <span>).
Неправильно:
<b><р>Текст</p></b>
Правильно:
<p><b>Текст</b></p>

 Все теги должны быть закрыты.
     Неправильно:
    <ol>
      <li>Первый пункт

      <li>Второй пункт

    </ol>
     Правильно:
    <ol>
      <li>Первый пункт</li>

      <li>Bторой пункт</li>

    </ol>
 Для одинарных тегов (например, <br>, <img> и др.) перед закрывающей угловой скобкой необходимо указать пробел и слэш (" /").
     Неправильно:
    <input type="text" name="polel">
    <img src="foto.gif" alt="Текст подсказки">
    <br>

     Правильно:
    <input type="text" name="polel" />
    <img src="foto.gif" alt="Текст подсказки" />
    <br />
Все  специальные  символы   внутри тегов  должны  быть  заменены  на HTML-эквиваленты   (например,  символ   "<"   необходимо  заменить   на &lt; ).
     Неправильно:
          <р> i < 0 </р>
     Правильно:
          <р> i &lt; 0 </р>
Если специальные символы невозможно заменить на HTML-эквиваленты, то их следует разместить внутри комментария

    <script type="text/javascript">
    <!--

      var i = -10; if (i < 0) alert("Переменная i меньше нуля");
    //-->
    </script>
или внутри блока CDATA
    <script type="text/javascript">
    //< ! [CDATA[
    var i = -10; if (i < 0) alert("Переменная i меньше нуля");
    //]]>
    </script>

 

Пример использования языка XHTML приведен в листинге 1.23.

Листинг 1.23. Пример использования языка XHTML


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
          "http://www.w3.org/TR/xhtmll/DTD/xhtmll-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru"> 
<head> 
<title>пример использования языка XHTML</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
</head>
<body>
<p>
  <img src="foto.gif" alt="Альтернативный текст" />
  Символ амперсанд внутри ссылки должен заменяться на HTML-эквивалент . <br />
  <a href="index.php?id=5&amp;name=Nik">Текст ссылки</a> 
</p> 
<form action="index.php">
  <div>
    <input type="text" name="txtl" />
    <input type="submit" value="Отправить" />
  </div> 
</form> 
</body> 
</html>

Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити