Что нужно знать для создания сайта ? Глава 2 - Кодировки и DOCTYPE
[к содержанию]
В предыдущей статье -
Что нужно знать для создания сайта ? я очень кратко
ознакомил Вас с тем, что нужно знать, о создании сайтов, если Вам интересна и близка эта тема.
Код html-страницы, который Я вам там привёл может работать правильно не всегда и не в любом браузере.
Почему ?
Знатоки этого вопроса ответят Вам, но краткий ответ не всегда понятен, особенно новичку, поэтому Мы попытаемся
разобраться в деталях.
=========================================
I.) Первая проблема - это определение типа html документа, по описанному DOCTYPE.
=========================================
В нашем простейшем примере DOCTYPE был не указан, однако по правилам его указывать нужно обязательно.
На сайте htmlbook.ru приводится следующее определение для DOCTYPE
Элемент предназначен для указания типа текущего документа — DTD (document type definition, описание типа документа). Это необходимо, чтобы браузер понимал, как следует интерпретировать текущую веб-страницу, поскольку HTML существует в нескольких версиях, кроме того, имеется XHTML (EXtensible HyperText Markup Language, расширенный язык разметки гипертекста), похожий на HTML, но различающийся с ним по синтаксису. Чтобы браузер «не путался» и понимал, согласно какому стандарту отображать веб-страницу и необходимо в первой строке кода задавать .
Существует несколько видов , они различаются в зависимости от версии языка, на которого ориентированы. В табл. 1. приведены основные типы документов с их описанием.
Табл. 1. Допустимые DTD
DOCTYPE |
Описание |
HTML 4.01 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
Строгий синтаксис HTML. |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
Переходный синтаксис HTML. |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> |
В HTML-документе применяются фреймы. |
HTML 5 |
<!DOCTYPE html> |
Для всех документов. |
XHTML 1.0 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
Строгий синтаксис XHTML. |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
Переходный синтаксис XHTML. |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> |
Документ написан на XHTML и содержит фреймы. |
XHTML 1.1 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
Разработчики XHTML 1.1 предполагают, что он постепенно вытеснит HTML. Никакого деления на виды это определение не имеет, синтаксис один и подчиняется четким правилам. |
Так что как видим, для своего сайта Вы можете выбрать из таблицы любой подходящий DOCTYPE и указать его.
Язык html постоянно развивается, расширяясь и дополняясь его разработчиками. Именно поэтому так необходимо использовать DOCTYPE.
Кроме того, после задания DOCTYPE вам нужно обязательно соблюдать некоторые правила, в записи тегов. Так, если Вы задали для DOCTYPE обычный тип html-документа, то и теги Вы продолжаете записывать так обычно, а вот если Вы задали тип как XHTML, тогда запись тегов может несколько измениться, например
символ <br>, вам нужно будет записывать как <br/>
Помимо основных, существуют также некоторые переходные типы DOCTYPE, например
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
Они также были приведены в таблице указанной выше.
Полный перечень и более подробное описание всех возможных вариантов DOCTYPE и их применения можно почерпнуть здесь - http://www.w3.org/TR/html401/struct/global.html
Правда указанная там информация представлена на английском.
=========================================
II.) Вторая проблема - использованная в html-документе кодировка и тег, её задающий.
=========================================
Проблемы, которые могут возникать в связи с различными заданными кодировками были уже рассмотрены мной в статье -
Проблема с кодировками при отображении страниц сайта
Всё что Вам нужно знать для того, чтобы не возникало проблем с кодировками это 2 вещи:
1) Сразу после открывающего тега
<head> укажите такую строчку -
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
При этом сам файл страницы должен быть также сохранен в этой же кодировке -
windows-1251
Нарушения кодировки происходят именно из-за конфликта между реальной кодировкой, которую имеет ваш файл страницы и тем, что задано в мета-теге для charset.
Бывают конечно и другие ситуации (см.
Проблема с кодировками при отображении страниц сайта ), но чаще
всего причина именно в этом.
В заключение данной статьи давайте перепишем код нашей первой странички в новом виде -
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
<title>Моя первая страница</title>
</head>
<body>
Привет! Это текст на моей первой странице.<br><br>
Ура !!! Работает !!!<br><br>
</body>
</html>
При этом сохраняем файл
index.html в кодировке
windows-1251 (если сохраняете из блокнота, то указываете её как ANSI)
далее
[к содержанию]