Форматирование текста в HTML. Основы CSS и HTML

ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ НЕФТЕГАЗОВЫЙ УНИВЕРСИТЕТ»

ИНСТИТУТ НЕФТИ И ГАЗА

Кафедра «Автоматизация и управление»

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к лабораторной работе

«Разметка html – документов»

по дисциплине «Компьютерно – телекоммуникационные сети»

для студентов специальности 220301 - «Автоматизация технологических процессов и производств (нефтегазодобыча)»

очной, заочной и заочной сокращённой форм обучения

Тюмень 2007

Утверждено редакционно – издательским советом

Тюменского государственного нефтегазового университета

Составитель: к.т.н., доц. Ведерникова Ю.А.

©Государственное образовательное учреждение высшего профессионального образования

«Тюменский государственный нефтегазовый университет», Тюмень 2007г.

1. Что такое HTML-документ 4

2. Структура HTML-документа 4

3. Оформление НТМL-документов 8

5. Использование графических изображений 15

6. Таблицы 16

ЗАДАНИЯ К ЛАБОРАТОРНОЙ РАБОТЕ 20

КОНТРОЛЬНЫЕ ВОПРОСЫ 21

Приложение A 22

Приложение Б 26

Цель работы: Освоение приемов создания WEB-страниц с использованиемHTML(HyperTextMarkupLanguage) - языка гипертекстовой разметки документов.

    Что такое HTML-документ

HTML-документ отличается от обычного текстового файла тем, что в нем присутствуют специальные команды - тэги, которые указывают правила форматирования документа. Тэги заключаются в треугольные скобки и, как правило, являются парными. Например:

< CENTER > обозначает вывод текста по центру

Этот текст будет расположен в середине экрана

CENTER > обозначает окончание вывода текста по центру

В тэгах HTML не различают символы верхнего и нижнего регистров: тэг < CENTER > эквивалентен тэгу < center > или < Center > .

Тэгу могут присваиваться атрибуты. Атрибуты указываются в треугольных скобках сразу после имени тэга. Значение атрибута определяется после знака равенства. Например, с тэгом < FONT > (шрифт)может использоваться атрибутSIZE , задающий размер шрифта:

< FONT SIZE =5>

Этот тэг задает размер шрифта - 5.

FONT >

  1. Структура html-документа

Обычно HTML-документ обрамляется тэгами < HTML > и HTML >.

Метка < HTML > сообщает броузеру WEB о считывании HTML-файла, а метка HTML > обозначает конец HTML-файла.

Документ HTML состоит из двух частей: заголовок и тело.

Заголовок эквивалентен введению и используется для сбора информации о странице. Для определения заголовка применяются метки < HEAD > и HEAD > . Применять метку < HEAD > следует сразу после метки < HTML > .

В секцию тело вводится текст и другие объекты, которые фактически являются страницей WEB. Для определения тела применяются метки < BODY > и BODY > , которые идут сразу за меткой < HEAD > .

Таким образом, структура HTML-документа выглядит следующим образом:

< HTML >

< HEAD >

Заголовок документа

HEAD >

< BODY >

Тело (основная часть документа)

BODY >

HTML >

      1. Заголовок документа

Основное назначение элементов заголовка - это описание общего для всего документа параметров отображения. К таким параметрам можно отнести стиль отображения документа, общий базовый адрес гипертекстовых ссылок, общие гипертекстовые ссылки идентификатор и имя документа и т.п.

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

< TITLE > Название документа TITLE >

Тег <МЕТА> также используется в пределах заголовка страницы и предназначен для того, чтобы включить любую полезную информацию, не определенную другими HTML тегами. Такая информация может быть извлечена серверами/клиентами для использования в идентификации, индексации и создании каталогов просматриваемых страниц.

Тег <МЕТА> не виден в браузере при просмотре страницы, но значительно увеличивает размер страницы. Если Вы хотите, чтобы Ваш сайт находился в числе первых, выдаваемых поисковыми машинами при запросах пользователей, то Вам нельзя игнорировать использование МЕТА - тега. Кроме того, необходимо правильно заполнять содержимое МЕТА - тегов.

Атрибуты МЕТА-тега: HTTP-EQUIV, Name и CONTENT.

HTTP - EQUIV. Этот атрибут определяет заголовок HTTP, которому принадлежит информация. Если семантика заголовка HTTP, названного этим атрибутом известна, то содержание может быть обработано на основании записанных здесь данных. Заголовки HTTP не чувствительны к регистру.

NAME. МЕТА - информационное имя. Если признак NAME - отсутствует, то данный атрибут может получить значение, равное значению HTTP-EQUIV.

CONTENT. МЕТА - информационное содержание, которое будет связано с данным именем и/или заголовком HTTP.

Типичные примеры использования МЕТА – тегов описаны ниже:

- используется браузерами для определения кодировки, с помощью которой была написана данная страница. "charset=koi8-r" - альтернативная кодировка. Существуют также кодировки ISO, LAT, DOS.

Внимание: не рекомендую вставлять на Вашу страничку данный код, потому что большинство серверов хранят данные в одной кодировке (например, koi8-r) и преобразуют их по запросу пользователя в нужную кодировку. Если сервер исправит Вашу первую кодировку во вторую, а пользователю выдаст третью, как смесь первой и второй, то никакие перекодировщики не смогут восстановить первоначальный текст на странице.

- идентификация автора страницы.

- сохранение авторских прав, информация о Вашей фирме и тд.

-определяет список ключевых слов, используемых на данной странице. Необходим для поисковых машин.

- Краткое описание содержимого данной страницы. Необходим для поисковых машин.

- предназначен для того, чтобы браузер брал страницу не из кэша, а по настоящему адресу.

- адрес издателя страницы (Ваш адрес).

- адрес Вашего сайта в сети Интернет.

- описывается средство, с помощью которого была создана данная страница.

- (не точно!) как часто обновляется информация на странице.

- (не точно!) предназначен для поисковых машин, постоянно сканирующих просторы сети Интернет.

- страница перечитывает сама себя через время x (в нашем случае x=2 секунды).

- этот вариант прочитает другую страницу через время x.

- запрещает кэширование страницы на локальном компьютере пользователя.

- Эффект появления страницы при входе на на неё..

- Эффект исчезания страницы при переходе по ссылке..

Посвященной CSS я рассказывал о базовых принципах CSS и типовых случаях его использования. Были рассмотрены основы CSS, возможные виды селекторов, структура HTML с точки зрения CSS. Я перечислил наиболее распространенные свойства CSS и показал как они могут задаваться для элементов страницы. Я уделил достаточно внимания свойствам CSS отвечающие за отступы и границы, отрисовку текста, картинок, ссылок и списков. Наконец остановился на свойствах специфичных для стилизации таблиц.

Все это хорошо, но по прежнему открытым остается вопрос использования стилей CSS для формирования структуры и разметки страницы. Раньше, когда о CSS мало кто знал и он только формировался как действенная технология, для этих целей практически повсеместно использовались таблицы. Они как правило занимали все место на странице и с помощью ячеек таблицы задавались регионы для размещения отдельных секций. Наличие таких свойств как colspan и rowspan , которые соответственно позволяют склеивать несколько колонок на строке и несколько строк в колонке, придавало еще большую гибкость разметке заданную таким образом. Очень часто в качестве содержимого ячейки использовались вложенные таблицы, которые в свою очередь могли иметь свои вложенные таблицы. Такая структура страницы в случае ее больших объемов становилась тяжелой, трудноподдерживаемой и совсем не гибкой. Скажем для того что бы перенести секцию с одной стороны страницы на другую в отдельных слуаях приходилось часами сидеть и вручную переписывать разметку заново.

Теперь же с использованием CSS все стало намного проще. Достаточно отделить содержимое требуемой секции в отдельный слой с помощью тега div и просто задать для него правила позиционирования на странице с помощью свойств CSS. В случае если позже появится необходимость перенести данную секцию в противоположную сторону страницы – достаточно просто изменить свойства CSS не трогая при этом кода самой страницы. Все очень просто и удобно. Однако для того что бы это простота была очевидной нужно немного поглубже познакомиться с данными возможностями.

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

  1. Варианты разметки страницы.

Как правило все страницы можно разделить на три категории:

    Страницы с фиксированной шириной . Такие страницы имеют ограницение на ширину для своих элементов и вне зависимости от того какой размер окна браузера – ширина используемого региона фиксирована и не изменяется в процесе работы со страницей. Подобные страницы используются в тех местах где устанвлены жесткие требования к отображению элементов страницы и неконтроллируемое расползание каких то элементов попросту недопустимо. В подобных случаях как правило устанавливают фиксированную ширину тега body и центрируют страницу по ширине окна браузера. Самая распространенное значение ширины для страниц с фиксированной шириной: 960px – такой размер позволяет хорошо выглядеть странице при разрешении экрана начиная с 1024х768.

    Страницы с плавающей шириной . – У данного типа страниц ширина его элементов не задана, и они свободно изменяют свои размеры, растекаясь по всему экрану или родительской секции и занимая все свободное место. Такой подход наиболее целесообразно применять в случае если основной целью страницы является отображение текста. В других же случаях применение подобных подходов может сделать из вас дон-Кихота, бессмысленно сражающегося с ветрянной мельницей, коей в вашем случае будет браузер.

    «Эластичные страницы» . Данные страницы совмещают в себе оба подхода. Элементы таких страниц имеют фиксированную ширину, но способны растягиваться или сжиматься в зависимости от ширины окна браузера в предустановленных диапазонах. Для таких целей можно использовать свойства min-height , min-width , max-height и max-width , о которых я упоминал в первой части.

Для того что бы добиться наилучших результатов, часто имеет смысл объеденить все три подхода к разметке страницы: скажем все вспомогательные и навигационные секции – в которых недопустимо неконтролируемое растекание элеметнов - сделать фиксированными по ширине, а центральную панель сделать «эластичной» или вовсе позволить ей занимать все пространство, остающееся после фиксированных секций в окне браузера.

  1. Способы разметки страницы

CSS позволяет эффективно реализовать разметку, используя различные приемы и техники. К наиболее распространенным приемам относятся плавающие слои (в англоязычных источниках, данный прием может называться float layout) и абсолютное позиционирование (absolute positioning). Причем, субъективно, разметка абсолютного большинства сайтов использует именнно плавающие слои. Далее я постараюсь рассмотреть каждый из этих приемов более детально.

  1. Плавающие слои

Плавающие слои реализуются посредством манипуляций со свойством float для эементов страницы. С помощью этого свойства слой, параграфы и прочие элементы можно позиционировать по левой или правой правой стороне страницы или внешнего контейнера. Для этого необходимо задать свойство float с соответсвующим значением: float: left, right, none; . Остальное содержимое страницы будет «окружать» данный элемент прижатый к одной из сторон. Очень важный момент, который необходимо учесть, что содержимое будет окружать элеметн с float только когда оно определено ниже этого тега в коде страницы и его ширина не больше оставшейся ширины страницы или внешнего контейнера. Поэтому в данном случае очень важно определить последовательность описания элеметнов страницы в HTML файле.

Иногда бывают ситуации, когда необходимо сделать так что бы какое то содержимое не окружало float -элемент а отрисовывалось ниже этого элемента. Примером такой ситуации может быть панель-footer, которая несмотря ни на что всегда должна быть в самом низу страницы. Здесь на помощь может прийти свойство clear которое принимает следующие значения: clear: left; right; both; none . Данное свойство принуждает содержимое отрисовываться ниже float -элемента. Причем с помощью значений этого свойства можно задать к каким float -элементам это относится: с левым выравниманием, с правым и с тем и с тем или ни к тому ни к другому. Так, если у вас есть элемент с float:left , для того что бы остальное содержимое отобразить ниже и не позволить ему окружить данный элемент следует также использовать clear:left .

Однако описанной функциональности разумеется недостаточно для эффективной реализации разметки страницы. Теперь самое время разобраться с приемами для более тонкой настройки разметки. В сулчае плавающих слоев положение элемента страницы по горизонтали как правило задают с помощью CSS свойства margin, которое, как мы уже знаем, используется для задания расстояния от границы одного элемента до другого элемента. На первый взгляд это может показаться несколько странным и не практичным. Однако, это только на первый взгляд. Уникальной особенностью данного свойства является то, что для него можно задавать отрицательные значения, смещая таким образом элемент влево относительно его исходного положения. Ну а соответственно положительно значение смещает элемент вправо (на самом деле разумеется элемент остается на своем месте, просто добавление свойства margin для элеметна визуально смещает его на заданное значение).

Таким образом, можно для элеметнов задать фиксированную ширину и высоту с помощью width и height соответственно, указать требуемые значения float и margin и радоваться результату. Дальнейшие действия ограничены только вашим воображением и смекалкой. В качестве примера, я хочу показать как можно было бы разметить страницу. Ниже представлен пример страницы разбытый на секции и код CSS-файла и HTML-страницы.

view image
Index.html Main.css







Main Page































/*clear browser predefined values*/



padding: 0;

margin: 0;

font-size: 100%;

font-weight: normal;

}

html

{

background: #C2C2C2;

}

/*defining margin-left: auto; and margin-right: auto; we place tha body content to the center of the screen*/

body

{

width: 1000px;

height: 1000px;

margin-left: auto;

margin-right: auto;

background: #FFF;

}

#topmenu

{

clear:right;

}

#login

{

text-align: center;

width: 300px;

background: #F2F2F2;

float: right;

margin: 2px;

padding: 5px;

border: 1px solid #FD8000;

border-left: 5px solid #FD8000;

}


.mainpanel

{

background: #F2F2F2;

border: 1px solid #FD8000;


margin: 1px;

padding: 0px;

}

#main

{

width: 518px;

height: 605px;

margin-left: 205px;

}

#top-lsidebar

{

width: 200px;

height: 186px;

float: left;

padding: -5px;

}

#bottom-lsidebar

{

width: 200px;

height: 396px;

clear: left;

float: left;

}

#top-rsidebar

{

width: 270px;

height: 605px;

float: right;

margin-right: 2px;

}

#footer

{

width: 1000px;

height: 30px;

background: #FD8000;

clear:both;

}

  1. Абсолютное позиционирование

Абсолютное позиционирование , как я уже говорил, используется не так часто, как плавающие слои, однако тоже заслуживает внимания. Иногда бывает так, что прием плавающих слоев оказывается неприемлимым по каким то причинам, и поэтому все что нам остается в такой ситуации – это абсолютное позиционирование. Однако чаще всего абсолютное позиционирование используется для месного позиционирования – указания размещения одного элемента относительно положения другого. Так или иначе знать о данном приеме нужно обязательно.

В основе данного приема лежит использование свойства position , которое может принимать следующие значения: position: absolute, relative, fixed, static . Значение absolute – задает позицию элемента в координатах экрана, или родительского элемента, как будет показано ниже. relative – определяет позицию относительно места по умолчанию. При указании смещения с использованием данного значения, на странице остается «дырка», поэтому как правило, использовать его таким образом не стоит, как можно – чуть попозже. fixed – Указывает позицию на экране, вне зависимости от скрола, то есть сколько бы вы не прокручивали скрол бар – элемент все равно останется на своей позиции. Значение static - нормальное позиционирование, если для элеметна не указан тип позиционирования, данное значение применяется по умлочанию.

После того как задано свойство position для элемента, имеет смысл указать свойства определяющие координаты элемента: top, bottom, left и right . Так, указав для какого либо элемента position: absolute , можно задать его положение с помощью вышеперечисленных свойств относительно той или иной границы окна браузера. Однако, если мы говорим об каком либо элементе который, скажем, находится внутри слоя, то абсолютное позиционирование такого элемента осуществляется относительно границ этого самого слоя.

Что бы пояснить сказанное, рассмотрим простой пример. Допустим у нас имеется заголовок а внутри заголовка задана картинка. Тогда ее положение относительно этого самого заголовка можно задать так:

h1 { position: relative; }

h1 img {

position: absolute;

top: 0;

right: 0;

}

То есть используя для заголовка свойство position: relative; , мы как бы говорим осуществлять позиционирование «относительно меня», ну а свойство position: absolute;

осуществляет позиционирование относительно границ родительского элемента. Как и для предыдущего приема, я предоставлю пример, что бы было понятно, что и как следует использовать.

view image
Index.html Main.css







Main Page








main






left










html, body, h1, h2, h3, h4, h5, h6, p, ol, ul, li, pre, code, address,

variable, form, fieldset, blockquote {

padding: 0;

margin: 0;

font-size: 100%;

font-weight: normal;

}

html

{

background: #c2c2c2 ;

}

body

{

width: 1000px;

height: 1000px;

margin-left: auto;

margin-right: auto;

background: #FFF ;

}

/*common panels of the sites*/

.mainpanel

{

background: #F2F2F2;

border: 1px solid #FD8000;

border-top: 20px solid #FD8000;

margin: 1px;

padding: 1px;

}

Mainpanel h1

{

margin-top: -20px;

color: #FFF;

font-weight: bold;

text-transform: capitalize;

}

#content

{

position: relative;

}

#main

{

position: absolute;

left: 205px;

width: 584px;

height: 300px;

}

#left

{

position: absolute;

left: 0px;

width: 200px;

height: 300px;

}

#right

{

position: absolute;

right: 0px;

width: 200px;

height: 300px;

}

#footer

{

position: absolute;

top: 330px;

left: 0px;

right: 0px;

}

  1. И что дальше?

Вот собственно наверное и все по разметке. Дальнейшие нюансы использования CSS для данной задачи уже будут специфичны для вашего проекта, браузера и требований. Разумеется о многом я не рассказал и сейчас. Не предостерег вас по поводу специфики разметки страницы для IE 6.0 (о, да, по этому впрору отделную книгу писать). Там много чего, даже из того, о чем я говорил, не будет работать или будет работать не так как хотелось бы вам. А для того что бы заработало, нужно пользоваться магическими заклинаниями вроде * html или zoom: 1; Ничего не рассказал о том, как боротся с возникающими проблемами при разметке, когда панели ползут непонятно куда и зачем (а это поверте, случится, и причем не раз, и не только с вамиJ ). Не рассказал про свойство z-index , это очень важно, особенно в случае с абсолютным позиционированим, когда содержимое одного элемента перекрывает содержимое другого. Не рассказал про такое чудесное свойство overflow , которое помогает бороться с содержимым панелей, которому не сидится внутри и так и хочется выпрыгнуть за пределы своего слоя. И еще много-много-много чего, о чем я промолчал. Не потому что я глупый, просто немного ленивыйJ

Раньше на просторах Интернета был широко распространён табличный тип вёрстки, которому посвящена . Однако со временем этот подход к созданию структуры сайта устарел, и на смену ему пришла блочная вёрстка.

Отличия блочной вёрстки от табличной

Если табличная вёрстка подразумевает, что содержимое страницы находятся внутри тега

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

Блочная вёрстка лишена недостатков табличной - поисковыми системами она индексируется лучше, её код не такой развесистый, да и блоки

, которые так любят называть «слоями», изначально задумывались универсальными, то есть «для всего», тогда как
- это таблица, которую нужно использовать для отображения табличных данных и не более того.

Единственный ощутимый минус блочной вёрстки - сделанные на ней сайты могут по-разному отображаться в обозревателях. Чтобы этого избежать, нужно делать вёрстку «кроссбраузерной», то есть одинаково отображаемой любым обозревателем.

Суть блочной вёрстки

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

Каждая часть страницы помещается в свой блок

: верх сайта - в первый, меню - во второй, контент - в третий и т. д. Каждый блок наполняется содержимым средствами HTML, а также позиционируется и оформляется с помощью CSS-разметки.

Конечный HTML-документ представляет собой набор блоков

с контентом внутри. Оформление зачастую находится в отдельном CSS-файле, подключенном к странице тегом , или как минимум в контейнере