[Nevor.ru]

   •Главная•   •Поиск•   •Новости•   •Гостевая•   •Карта•  
•Главная•   •Поиск•   •Новости•   •Гостевая•   •Карта•  
Любимов Павел 2008-2012. © (написать письмо).
Навигация
по сайту
Компьютеры
Программы
Сайты
Прочее
На главную
Гостевая
Новости
Статьи
Список статей
по теме
Содержание
раздела
Предисловие
Введение
Программы
Код HTML
Использование
спецификации
Термины
Код CSS
Использование
спецификации
Код PHP
Структура
html-документа
Технические
моменты
Верстка сайта
Виды вёрстки
Поиск ошибок
Системы CMS

CSS и PHP в структуре HTML. DOCTYPE.

редакция 04.07.09

Структура документа HTML имеет следующий вид:

структура HTML

Во главе документа стоит DOCTYPE. Немного о том, для чего он нужен: DOCTYPE объявляет интернет-обозревателю тип документа, который предстоит обработать и определяет правила этой обработки. Не объявляя DOCTYPE, вы подвергаете свой html-документ (сайт) полной анархии со стороны обозревателей. Каждая программа будет трактовать написанное как ей вздумается, а это чревато большими проблемами. В HTML 4.01 присутствует три вида DOCTYPE. Выглядят они так (извините что мелко, иначе не уместить):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/frameset.dtd">

Также можно встретить такие неправильные варианты (спасибо Oldman'у c postroika.ru за замечание):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN>

Вторая тройка doctyp'ов является урезанной и использовать её категорически нельзя, т.к. обозреватели с таким объявлением документа работают также, как если бы его не было вовсе.

DOCTYPE Transitional объявляет переходной тип документа (переход к версии HTML 4.01 с более старой), тот, в котором в силу ряда причин присутствуют команды, не рекомендованные к использованию (например, осуществляется поддержка сайта, написанного на HTML 3.2). Про спецификацию HTML, рекомендации по использованию тегов и атрибутов я писал в главе, посвященной языку HTML.

DOCTYPE Strict объявляет документ, полностью соответствующий стандарту HTML 4.01. Я бы советовал сразу начинать писать html-документы, объявляя "Strict". Таким образом вы обеспечите и лучшую совместимость с последующими версиями языка (HTML 5 готовится к выходу), будет полное соответствие стандарту и меньше проблем с кроссбраузерностью.

DOCTYPE Frameset используется при создании документов на фреймах. Структура фреймового документа и его функционирование сильно отличается от стандартного html-документа. Так что о фреймах мы поговорим позже.

html-документом является содержимое контейнера "<HTML>" с объявленным DOCTYPE. Состоит документ из двух частей - технической и пользовательской. В первой содержится информация для обозревателя, во второй - для пользователя. Техническая информация заключена в контейнер "<HEAD>, а пользовательская - в контейнер "<BODY>". Конструкция выглядит так:

<!DOCTYPE HTML PUBLIC...  >
<HTML>
<HEAD>технический блок</HEAD> <BODY>пользовательский блок</BODY>
</HTML>

Технически - это уже html-документ.

*******

извините, что мелко, иначе не уместить

Теперь более подробно о блоках. Для представления информации, как впрочем и для всего остального, используются теги. Стоит отметить, что почти все теги <HEAD> не используются в <BODY> (теле) документа. Верно и обратное. Рассмотрим технические теги контейнера <HEAD>:

<TITLE>заголовок страницы</TITLE>
<BASE href="базовый url">
<META информация о странице>
<LINK ссылка на файл (документ)>
<STYLE> стиль </STYLE>
<SCRIPT type="тип файла"
src="путь к файлу скрипта"> </SCRIPT>

"BASE", "LINK" и "META" являются непарными тегами и каждый из них имеет обязательные атрибуты, но обо всем по порядку.

Контейнер <TITLE> содержит в себе заголовок страницы. Заголовок отображается в окне обозревателя в левом верхнем углу. Сейчас там написано "Структура документа HTML".

<BASE href="http://www.mysite.ru">

Тег <BASE> позволяет расширять относительные пути в ссылках. Если в документе вы употребляете относительные ссылки

<IMG src="images/image.jpg" alt="">
<A HREF="coder4.php">ссылка</A>

вместо абсолютных,

<IMG src="http://www.mysite.ru/
images/image.jpg" alt="картинка"> <A HREF="http://www.mysite.ru/
coder4.php">ссылка</A>

то при любом перемещении файлов ссылки на них станут "битыми", поскольку станут ссылаться на пустое место. Если в <BASE> прописан базовый url "http://www.mysite.ru", то относительные ссылки

images/image.jpg
coder4.php

независимо от местоположения документа, будет выглядеть так:

http://www.mysite.ru/images/image.jpg
http://www.mysite.ru/coder4.php

Базовый url - это фактический адрес. Для данного документа базовым (полным или абсолютным) url является адрес:
http://www.nevor.ru/site/coder4.php.

Тег <META> содержит информацию для обозревателей и поисковых роботов. У него два обязательных атрибута, первый из которых определяет тип информации, а второй ее содержит. Информацию содержит атрибут "content", а определяют тип информации атрибуты "name" и "http-equiv". Вариантов тега достаточно много, но на сегодняшний день большинство из них утратило актуальность и почти не используется. При желании можете набрать в поисковике "мета теги" и ознакомиться со всем их многообразием. Перечислю те, которые пока не сдают свои позиции и играют роль при верстке сайта:

<META  name="keywords"
content="ключевые слова страницы">

Тут нужно указывать часто встречающиеся слова, которые характеризуют информационное наполнение страницы. В идеале эти слова должны присутствовать в контейнерах заголовков <TITLE> (HEAD), <H1> - <H6> (BODY) и в тексте страницы (желательно ближе к началу). При грамотном использовании это даст хороший результат при индексации страницы поисковым роботом. Для данной страницы я указал следующие ключевые слова: структура HTML, таблицы стилей, CSS, PHP, тип документа, DOCTYPE. Результативность выбора ключевых слов можно проверить с помощью этого скрипта.

<META  name="description"
content="краткое описание страницы">

С помощью этого атрибута можно сделать краткое описание страницы. Оно обычно отображается под ссылками ресурсов при выдаче запроса в поисковике. Чем подробнее описание, тем лучше. Главное описывать по существу и помнить, что краткость сестра таланта. В сети можно встретить массу статей о том, что "description" и "keywords" утратили актуальность, однако игнорирует данные атрибуты пока только Рамблер, а Гугл напротив советует их использовать и делать качественное описание страниц для лучшей индексации своими поисковыми роботами.

<META name="revisit"
content="период индексации страницы">

Этот атрибут сообщает поисковому роботу с какой периодичностью обновляется сайт. Период индексации указывается числом (кол-во дней). Это конечно не заклинание и робот будет приходить когда ему вздумается, но все же возьмет этот срок на заметку. Так что если он будет соответствовать действительности, это положительно скажется на индексации.

<META name="robots"
content="команды для поискового робота">

Еще один инструмент влияния на поискового робота, уже больше напоминающий заклинание. Значений у атрибута "content" четыре: "index", "noindex", "follow", "nofollow". Первые два отвечают за индексацию страницы, вторые - за переход робота по ссылкам в документе. Указываются значения парами:

<META name="robots"
content="noindex, follow">

При таких значениях робот не проиндексирует страницу, то есть выдаваться в поисковике по запросу она не будет, но перейдет по ссылкам и проиндексирует остальную часть сайта. Полезно указывать подобные значения для страниц с ограниченным доступом (личные или запароленные).

<META http-equiv="content-type"
content="text/html;charset=windows-1251">

Эти атрибуты информируют обозреватель о кодировке документа. В примере указана стандартная windows-кодировка. Важно, чтобы она, во избежании проблем, совпадала с настройками кодировки на сервере.

<LINK rel="stylesheet" href="style.css"
type="text/css"> <LINK rel="shortcut icon" href="favicon.ico"
type="image/ico">

С помощью тега <LINK> можно сделать ссылку на любые файлы (технические документы), которые могут потребоваться при обработке основного документа. При этом атрибут "rel" описывает сам файл, "href" указывает его местоположение, а "type" сообщает о типе файла. Первый пример делает ссылку на таблицу стилей (stylesheet), которая находится там же, где и обрабатываемый файл (имя файла style.css), представляя собой текстовой css-файл (text/css). Второй пример делает ссылку на фавикон страницы. Есть и другие варианты использования тега, но я использую только эти.

<STYLE>
p.red {font-color: red;}
</STYLE>

Контейнер <STYLE> применяется для добавления стилей, использующихся только в данном документе, чтобы не увеличивать код лишними атрибутами, а обойтись атрибутом "class" и не увеличивать таблицу стилей лишней записью, использующейся лишь однажды.

Последний тег списка - <SCRIPT>. Это контейнер для скриптов. Употребляется как в техническом, так и в пользовательском блоке. Можно либо указать путь к файлу скрипта, либо поместить код скрипта непосредственно в контейнер. Подробности этих манипуляций смотрите в спецификации.

Есть еще не рекомендованные технические теги. Их описание можете посмотреть в спецификации. С контейнером <HEAD> все, переходим к контейнеру <BODY>. [наверх]

О контейнере <BODY> в этой главе я напишу совсем немного, поскольку работа с тегами в этом контейнере - это задача больше практическая. Поэтому информация по нему изложена в двух последующих практических главах. Весь материал, который был изложен выше я отнес к теоретическому, хотя создание шаблона документа и его правильное оформление - вещь, несомненно, практическая. Сделал я это потому, что стараний ваших потенциальный пользователь не оценит, поскольку техническую информацию он не увидит и разницы между объявлением разных DOCTYPE не уловит. А вот содержимое контейнера <BODY> он оценит более чем! А поскольку любой ресурс разрабатывается в первую очередь для пользователя (если, конечно эгоизм не зашкаливает, а так можно сваять и для себя, любимого), то практический интерес вызывает именно пользовательский блок. Упомяну пару теоретических моментов в заключение главы.

Всем тегам и контейнерам можно присвоить стиль не только с помощью атрибута "class", ссылающегося на таблицу стилей или контейнер <STYLE>, но и написать стиль прямо внутри тега. Делается это с помощью атрибута "style".

<P style="font-style: italic;">текст</P>

C помощью другого атрибута "title" можно дать название (комментарий) любому тегу или контейнеру. Например, указать "title" в ссылке.

<A href="адрес" title="поехали!">ссылка</A>

При наведении курсора появится всплывающая подсказка. Попробуйте навести курсор на ссылку примера. Атрибут "title" можно использовать и как комментарий для поискового робота.

Атрибут "id" позволяет присвоить тегу (контейнеру) уникальное имя и впоследствии использовать его для присвоения css-стилей. К "id" очень легко прикрепить несколько стилей из разных таблиц. Если вы применили "id" к <TABLE>, он автоматически применится к <TR> и <TD>. То есть вложениям контейнера присваивается "id" контейнера. Атрибут "id" - очень удобный инструмент при работе со стилями.

html-код:
<P id="intro">текст абзаца</P>
css-код:
P#intro {font-style: italic;}

Это один из примеров употребления атрибута "id" для присвоения css-стиля, используя id-селектор языка CSS.

И последнее. Код бывает очень сложным и объемным, тогда в его дебрях легко запутаться. Поэтому при написании кода часто применяют комментарии. Комментарий - это контейнер, который делает заключенную в нее часть кода неактивной, то есть программы при обработке кода эту часть игнорируют. Комментарии используют в качестве маркеров и подсказок при написании кода, чтобы лучше в нем разбираться впоследствии. Напишите сайт в десять страниц, отложите в дальний ящик на год, а потом откройте. Без комментариев, как говорится "сам черт ногу сломит". А с комментариями разберетесь за несколько минут. Очень помогает при поддержке чужого кода или при работе группы программистов над одним проектом. Также комментарии применяют для отладки. Поскольку программы комментарии игнорируют, часть кода с помощью них можно как бы отключать, поместив его в контейнер комментария.

<!-- контейнер-комментарий HTML -->
/* контейнер-комментарий CSS */
// символ-комментарий PHP
# символ-комментарий PHP
/* контейнер-комментарий PHP */

Символы-комментарии (php) действуют только до конца строки. То есть если поставить такой комментарий посредине строки, правая ее часть (после символа) закомментируется. Следующая строка закомментирована не будет. В контейнер можно без проблем заключить и несколько строк. Комментарии HTML применяются в html-документаx:

..........
<!-- это ссылка на таблицу стилей --> <LINK rel="stylesheet" href="style.css"
type="text/css"> <!-- а это - на фавикон --> <LINK rel="shortcut icon" href="favicon.ico"
type="image/ico">
..........

Комментарии CSS употребляются внутри таблиц стилей, контейнера <STYLE> и атрибута "style".

P#intro {font-style: italic;} /* абзац курсив */

Комментарии PHP применяются либо внутри контейнера <?php   ;> html-документа, либо в самостоятельном php-документе, например, скрипте.

<?php  //включение документа menu.html
include "menu.html";>

На этом все - бегом практиковаться! [наверх]

помочь автору и сайту

...технические тонкости...


Информация
Спецификация
языка HTML
Спецификация
языка CSS
Файлы
Набор новичка
Шаблоны сайтов
Редактор кода
Тренер HTML
Denwer