Хочу выбрать DOCTYPE

Статус
Закрыто для дальнейших ответов.

Rozalia

Active Member
Регистрация
24.05.2010
Сообщения
40
Здравствуйте!

Я при создании сайта использовала вот такой тэг:

Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Но вот решила обучиться блочной вёрстке, а в учебнике дан такой тэг:

Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Если я выставлю последний предложенный (более строгий стандарт), мой сайт не "сломается"?
И ещё сразу хочу спросить. Какой вариант правильнее - этот:

Код:
<html>
<head>
<title></title>
<meta http-equiv="KEYWORDS" content="">
<meta http-equiv="DESCRIPTION" content="">
<meta http-equiv="Content-Type" content="text/html;charset=windows-1251"/>
<meta http-equiv="Content-Language" content="ru"/>
<link href="styles.css" type="text/css" rel="stylesheet">
<style type="stylesheet"></style>
</head>
Или вот такой:

Код:
<html xmlns="http://www.w3.org/1999/xhtml" lang="ru" xml:lang="ru">
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
<meta name="description" content="" />
<meta name="keywords" content="" />
<link rel="stylesheet" href="style.css" type="text/css" />
 

tigra60

Спасатель
Регистрация
10.12.2009
Сообщения
1 990
Здесь важно понимать, что вообще такое этот самый DOCTYPE.
Все очень просто. Это немного отличающиеся диалекты одного и того же HTML.
Конечно, проще всего HTML 4. Можно не закрывать элементы (P, LI, TR, TD и др.) и вообще, меньше строгостей.
XHTML - более строгий.
Переходный (Transitional) от строгого (strict) отличается тем. что допускает применение некоторых запрещенных (Deprecated) элементов и атрибутов. Характерный пример - Вы хотите, чтобы страница по ссылке открывалась в новом окне. Естественно, используете атрибут target="_blank". Однако, этот элемент запрещен к применению и при строгом DOCTYPE получите ошибку валидации, а при переходном -все будет ОК.
Подробнее можете почитать здесь.

Так что выбор DOCTYPE больше зависит от личных предпочтений или традиций команды в которой Вы работаете.

Если я выставлю последний предложенный (более строгий стандарт), мой сайт не "сломается"?
Если код написан правильно - не должен сломаться.

Какой вариант правильнее
Конечно, браузер поймет оба варианта, хотя ни в одном из них не указан DOCTYPE. В первом случае это должен быть HTML, а во втором XHTML.
Кроме того, в первом примере слеши перед закрывающей скобкой элементов META не нужны (будет ошибка валидации).
 

Serg@NT

Well-Known Member
Регистрация
20.02.2010
Сообщения
506
Если я выставлю последний предложенный (более строгий стандарт), мой сайт не "сломается"?
Если код написан правильно - не должен сломаться.
Смотря где. Например в самом любимом браузере всех веб-разработчиков (я ИЕ имею ввиду, естественно) разметка реально меняется в зависимости от выбранного DOCTYPE (проверял в 8м ИЕ). Остальные вроде не реагируют.
 

Rozalia

Active Member
Регистрация
24.05.2010
Сообщения
40
Следовательно, я могу спокойно "юзать" transitional DOCTYPE, а уже потом, поднаторев, перейти на Strict.
 

Serg@NT

Well-Known Member
Регистрация
20.02.2010
Сообщения
506
Следовательно, я могу спокойно "юзать" transitional DOCTYPE, а уже потом, поднаторев, перейти на Strict.
Можете использовать какой угодно. Зависит от того, какие теги вы используете, используете ли фреймы и т.п. Стремиться привести всё к Strict, в принципе, смысла нет. Это только значит что теоретически strict должен бы корректно отображаться везде, т.к. это самый строгий стандарт. Но это только теоретически. Чаще всего приведение к strict не стОит затраченных усилий.
 

Rozalia

Active Member
Регистрация
24.05.2010
Сообщения
40
Кстати о браузерах. Serg@NT, вы заикнулись о том, что ИЕ по-разному реагирует на разметку. Я сейчас пользую Firefox. Прописываю часть кода и просматриваю в этом браузере. Не знаю точно, с чем связано, но заметила, что при большом числе вложенных таблиц (в простой табличной вёрстке) страница не корректно отображается: вместо заданных горизонтальных "строк" все ячейки располагаются по вертикали. Приходится разбивать всё на отдельные блоки (не div), отдельные таблицы.
Первый вариант читался правильно:
<table><tr><td>
<table><tr><td>хэдер (шапка, баннер)</td></tr></table>
</td></tr>
<tr><td>
<table><tr><td>горизонтальное меню (из 7 ячеек)</td></tr></table>
</td></tr>
<tr><td>
<table><tr><td>скрипт новостей</td><td>контент</td><td>ссылки</td></tr></table>
</td></tr>
<tr><td>
<table><tr><td>футер (копирайт)</td></tr></table>
</td></tr></table>

Проблема выявилась, когда в ячейку контента я решила вложить ещё одну табличку, чтобы сделать фотоальбом:
<table><tr><td>
<table><tr><td>хэдер (шапка, баннер)</td></tr></table>
</td></tr>
<tr><td>
<table><tr><td>горизонтальное меню (из 7 ячеек)</td></tr></table>
</td></tr>
<tr><td>
<table><tr><td>скрипт новостей</td>
<td><table><tr><td>фотоальбом (ячейки под картинки)</td></tr></table></td>
<td>ссылки</td></tr></table>
</td></tr>
<tr><td>
<table><tr><td>футер (копирайт)</td></tr></table>
</td></tr></table>

Переделала код вот так:
<table><tr><td>хэдер (шапка, баннер)</td></tr></table>

<table><tr><td>горизонтальное меню (из 7 ячеек)</td></tr></table>

<table><tr><td>скрипт новостей</td>
<td>фотоальбом (всего 4 ячейки под картинки по горизонтали)</td>
<td>ссылки</td></tr></table>

<table><tr><td>футер (копирайт)</td></tr></table>

Что я не так делала?
 

tigra60

Спасатель
Регистрация
10.12.2009
Сообщения
1 990
Например в самом любимом браузере всех веб-разработчиков (я ИЕ имею ввиду, естественно) разметка реально меняется в зависимости от выбранного DOCTYPE
При отсутствии DOCTYPE (даже если он и есть, но перед ним какие-либо символы, хотя бв и комментарии) сие дивное творение переходит в режим обратной совместимости, т.е, по идее, должно вести себя, как ИЕ-5. На деле - поведение его подобно действиям обезьяны с пистолетом - непонятно, когда выстрелит и в кого попадет.

Что я не так делала?
Верстаете таблицами.
 

Rozalia

Active Member
Регистрация
24.05.2010
Сообщения
40
Ну я так и поняла, что нужен <div>ный код. Уже учусь!
 

tigra60

Спасатель
Регистрация
10.12.2009
Сообщения
1 990
И еще, в догонку:
Я сейчас пользую Firefox
Если Вы верстаете кроссбраузерно, обязательно надо проверять, как ведет себя сверстаная страничка в наиболее популярных браузерах. Причем, не постфактум, а входе верстки, дабы вовремя подставить костыли попирателям W3C стандартов.
 

Rozalia

Active Member
Регистрация
24.05.2010
Сообщения
40
Если Вы верстаете кроссбраузерно, обязательно надо проверять, как ведет себя сверстаная страничка в наиболее популярных браузерах. Причем, не постфактум, а входе верстки, дабы вовремя подставить костыли попирателям W3C стандартов.
Именно так я и делаю: набираю "текст", сохраняю, обновляю страницу (в заранее открытом браузере) и "любуюсь" на результат.
 
Статус
Закрыто для дальнейших ответов.
Верх Низ