HTML - статьи

         

A


Description

The A element brackets (or anchors) a piece of text (and/or image) which

is identified as a hypertext link.

The A element must have either an HREF attribute or a NAME attribute.

The HREF attribute identifies a destination ,

and the bracketed text is rendered as a hypertext link to the URL.

Browsers will display the contents of an A element with an HREF attribute

in a special manner to indicate that if the contents are selected,

the browser will execute that hypertext link.

The NAME attribute identifies a destination tag, and the bracketed text

is thereby identified as an available hypertext target

within this document.

Browsers do not display the contents of an A element with a NAME attribute

in any special way.

However, an A element with an HREF attribute can now be constructed

by using the document URL suffixed with #name.

This will load the document, but will position the display

starting at the location of this NAME tag.

An A element with an HREF attribute can also be constructed

to jump directly to this destination tag within the same document



by a URL consisting solely of #name

The presence of REL=relation

in document A with HREF to document/object B

identifies a relationship that B has to A that A recognizes/authorizes/verifies.

The presence of REV=relation

of the identical relation

in document B with HREF to document/object A

identifies a desired/expected/claimed relationship that B has to A,

but must be verified by checking with A.

Minimum Attributes

<A HREF="..." >characters...

</A>

or

<A NAME="..." >characters...

</A>

All Possible Attributes

<A HREF="..."

NAME="..."

REL="..."

REV="..."

URN="..."

TITLE="..."

METHODS="..."

LANG="..."

DIR=ltr|rtl

CHARSET="..."

ID="..."

CLASS="..."

MD="..."

TARGET="..."

SHAPE="...">characters...


</A>

Elements Allowed Within...

members of groups

but not element

Allowed In Content Of...

Any element that permits members of group

Variations

The LANG, DIR and CHARSET attributes are introduced with the

internationalization proposal.

The CHARSET attribute is a hint as to the expected

character set used by the hyperlink.

Earlier proposals suggest changing the NAME attribute to ID,

declaring the NAME attribute as obsolete,

and adding an ID attribute for various elements

including the paragraph and heading elements.

With the ID, MD, and CLASS attributes as part of the style sheet

proposal, this is likely to change.

At present REV and REL are rarely used or supported,

and are Level 1 attributes,

but are of growing interest to automated document environments.

These relationships are more commonly identified in the

of the document using the element.

REL and REV can be either a comma-separated or white space separated

set of relationship(s) of the HREF link.

One proposal suggests that comma imply "or" and white

space imply "and" for a list of values.

These relationships and their semantics were originally proposed

to be registered with an HTML authority, which was described at

http://www.w3.org/hypertext/WWW/MarkUp/RegistrationAuthority.html,

but that link no longer responds. The entire topic of link relationships

is under active discussion and change.

Early examples of relationship names are

UseIndex, UseGlossary, Annotation, Reply, Embed,

Precedes, Subdocument, Present, Search, Supersedes, History, Made,

Owns, Approves, Supports, Refutes, Includes, Interested.

URN is for a Universal Resource Number, and is not currently

used or supported, and is a Level 1 attribute.

RFC 1866 describes it as a preferred, more persistent identifier

than the value of HREF.

TITLE is little used or supported, and is a Level 1 attribute,

but is expected to be the title of the HREF document.

RFC 1866 suggests TITLE can be displayed as a margin note



or on a small box while the mouse is over the anchor.

(ed. I am unaware of any browser that has implemented this

feature.)

METHODS is little used or supported, but is expected to be

a white-space-separated list of HTTP METHODS supported by the

object and accessible to the user.

RFC 1866 suggests that the content of the A element may be

rendered differently depending upon the HTTP method.

TARGET is a Netscape 2.0 extension to define a window name for use

by the retrieved hyperlink. If the named window is not already

open, Netscape 2.0 will open a new window and assign it that name.

See also the element for naming a window.

SHAPE is proposed to provide a mechanism to define

multiple A elements and corresponding "hotzones" within the

proposed element, to perform the equivalent function

of ISMAP without the need for writing a responding cgi-bin program.

For an alternate proposal, see the element.

A is a Level 0 element.


ABBREV


Description

The ABBREV element

changes the character rendering of the

contents of the element to logically represent

abbreviations.

Minimum Attributes

<ABBREV>characters... </ABBREV>

All Possible Attributes

<ABBREV

LANG="..."

DIR=ltr|rtl

ID="..."

CLASS="...">characters...

</ABBREV>

Elements Allowed Within...

-In progress, to be determined-

Allowed In Content Of...

-In progress, to be determined-

Variations

The ABBREV element is a Version 3 proposed element.

All character definition elements are Level 2.



ACRONYM


Description

The ACRONYM element

changes the character rendering of the

contents of the element to logically represent

acronyms.

Minimum Attributes

<ACRONYM>characters... </ACRONYM>

All Possible Attributes

<ACRONYM

LANG="..."

DIR=ltr|rtl

ID="..."

CLASS="...">characters...

</ACRONYM>

Elements Allowed Within...

-In progress, to be determined-

Allowed In Content Of...

-In progress, to be determined-

Variations

The ACRONYM element is a Version 3 proposed element.

All character definition elements are Level 2.



ADDRESS


Description

The ADDRESS element defines a separated multi-line set of text

to be rendered for address information.

Minimum Attributes

<ADDRESS>characters...

</ADDRESS>

All Possible Attributes

<ADDRESS

LANG="..."

DIR=ltr|rtl

ALIGN=center|left|right|justify

ID="..."

CLASS="..."

CLEAR=left|right|all|"..."

NOWRAP>characters...

</ADDRESS>

Elements Allowed Within...

members of group

or element

Allowed In Content Of...

Any element that permits members of group

Variations

ADDRESS text is typically rendered in italics, and may be indented.

The LANG and DIR attributes are introduced with the

internationalization proposal.

The internationalization proposal also includes

ALIGN=center|left|right|justify

The CLEAR and NOWRAP attributes are proposed in Version 3.

ADDRESS is a Level 0 element.

Sandia Requirements

An ADDRESS element is required to identify a "point-of-contact".

For details, see the .



APPLET


Description

The APPLET element replaced the APP element as the mechanism

to identify and invoke a JAVA(tm) application. A browser that

understands this element will ignore everything in the content

of the APPLET element except the PARAM elements. Browsers that

do not understand this element should ignore it and the PARAM

elements and instead process the content of the element.

Thus the content is the alternate HTML if the application is

not invoked. CODE is the name of the file that contains the

compiled Applet subclass. This name is relative to the base

URL of the applet and cannot be an absolute URL. WIDTH and HEIGHT

give the initial width and height (in pixels) of the applet

display area. CODEBASE specifies the base URL of the applet.

ALT specifies parsed character data to be displayed if the brower understands

the APPLET tag but can't/won't run them. NAME specifies a name

for the applet instance, which allows applets on the same page

to commuicate with each other. ALIGN specifies the display

alignment. VSPACE and HSPACE specify the reserved space around the

applet (in pixels).

Minimum Attributes

<APPLET

CODE="..."

WIDTH="..."

HEIGHT="...">characters... </APPLET>

All Possible Attributes

<APPLET

CODE="..."

WIDTH="..."

HEIGHT="..."

CODEBASE="..."

ALT="..."

NAME="..."

ALIGN=left|right|top|texttop|middle|absmiddle|baseline|bottom|absbottom

VSPACE="..."

HSPACE="...">characters... </APPLET>

Elements Allowed Within...

and any other elements which would have been allowed at this

point in the document.

Allowed In Content Of...

-In progress, to be determined-

Variations

The APPLET element is a proposed extension for JAVA(tm) applications,

and is a Netscape 2.0 extension.



AREA


Description

The AREA element

specifies a single area of an image which, if selected, will

link to the hyperlink identified by HREF.

If multiple AREA elements in the

same MAP define overlapping areas, the first encountered takes precedence.

Minimum Attributes

<AREA COORDS="...">

All Possible Attributes

<AREA COORDS="..."

SHAPE=rect|circle|polygon

HREF="..."

NOHREF

ALT="...">

Elements Allowed Within...

AREA has no end tag and therefore has no content.

Allowed In Content Of...

Variations

The AREA element is part of a proposed enhancement to

provide client-side image maps.

COORDS describes the position of

an area (in pixels) of the image in comma-separated x,y coordinates

where the upper-left corner is "0,0".

For SHAPE=rect (the default), it is "left,top,right,bottom".

For SHAPE=circle, it is "center_x,center_y,radius".

For SHAPE=polygon, it is successive x,y vertices of the polygon.

If the first and last coordinates are not the same, then a segment

is inferred to close the polygon. The NOHREF indicates that this

region should generate no links.

The ALT attribute specifies optional parsed character data to describe the area which

could be displayed by a text-only browser as a substitute for the image.

AREA is an extension in Netscape 2.0,

but the only SHAPE recognized is "rect", and ALT is not defined.



AU


Description

The AU element

changes the character rendering of the

contents of the element to logically represent

the name of an author.

Minimum Attributes

<AU>characters... </AU>

All Possible Attributes

<AU

LANG="..."

DIR=ltr|rtl

ID="..."

CLASS="...">characters...

</AU>

Elements Allowed Within...

-In progress, to be determined-

Allowed In Content Of...

-In progress, to be determined-

Variations

The AU element is a Version 3 proposed element.

All character definition elements are Level 2.



B


Description

The B element changes the physical rendering of the

contents of the element to a bold font.

Minimum Attributes

<B>characters...

</B>

All Possible Attributes

<B

LANG="..."

DIR=ltr|rtl

ID="..."

CLASS="...">characters...

</B>

Elements Allowed Within...

members of group

Allowed In Content Of...

Any element that permits members of group

Variations

Browsers who do not have bold may render in some other manner.

RFC 1866 states that <B> content must be rendered as distinct

from <I> content.

The LANG and DIR attributes are introduced with the

internationalization proposal.

All character definition elements are Level 2.



BANNER


Description

The BANNER element is proposed for corporate logos, navigation aids,

disclaimers and other information which shouldn't be scrolled

with the rest of the document.

Minimum Attributes

<BANNER>characters...

</BANNER>

All Possible Attributes

<BANNER

LANG="..."

DIR=ltr|rtl

ID="..."

CLASS="...">characters...

</BANNER>

Elements Allowed Within...

-In progress, to be determined-

Allowed In Content Of...

Variations

This is a proposed Version 3 element.



BASE


Description

The BASE element provides the absolute

base to be used for any relative URL links in this document.

It must be a complete file name,

and is usually the original URL of this document.

If this file is moved, having the BASE set to the original URL

eliminates the need to also move all the documents which are

identified by relative URL links in this document.

Minimum Attributes

<BASE HREF="...">

All Possible Attributes

<BASE HREF="..." TARGET="...">

Elements Allowed Within...

Allowed In Content Of...

Variations

This is a Level 0 element.

Netscape 2.0 defines the TARGET attribute to define a default

named target window for every link in a document that does not

have an explicit TARGET attribute.



BASEFONT


Description

Change the document base font size to one of the seven defined sizes.

The default is 3.

Minimum Attributes

<BASEFONT SIZE=1|2|3|4|5|6|7>

All Possible Attributes

<BASEFONT SIZE=1|2|3|4|5|6|7>

Elements Allowed Within...

-In progress, to be determined-

Allowed In Content Of...

-In progress, to be determined-

Variations

The BASEFONT element is a Netscape extension.



BDO


Description

The BDO element is a directional override feature needed to deal

with unusual pieces of text in which directionality cannot be

resolved from context in an unambiguous fashion.

It requires the DIR attribute.

The meaning of DIR is different on BDO than on inline text markup elements.

For BDO the DIR attribute

is a bidi override, forcing the directionnality of even those

characters that have strong directionnality. On inline elements,

DIR indicates a new directional embedding level, affecting mostly the

neutrals and the overall layout.

Minimum Attributes

<BDO DIR=ltr|rtl>characters... </BDO>

All Possible Attributes

<BDO

DIR=ltr|rtl LANG="...">characters...

</BDO>

Elements Allowed Within...

members of group

Allowed In Content Of...

Any element that permits members of group

Variations

The BDO element is a proposed element as part of the enhancement

to deal with internationalization of HTML.



BGSOUND


Description

The BGSOUND element will cause an audio file to be presented

as background to the document.

Minimum Attributes

<BGSOUND SRC="...">

All Possible Attributes

<BGSOUND

SRC="..."

LOOP="...">

Elements Allowed Within...

The BGSOUND element is defined as having no content.

Allowed In Content Of...

-In progress, to be determined-

Variations

The BGSOUND element is a MS Internet Explorer 2.0 enhancement.

SRC specifies the URL of the audio

file to be played. LOOP specifies how many times the sound will

be displayed while the HTML document is displayed, and can either

be a number or the string "infinite". The default for LOOP is one.

Considerable opposition to the use of this element has been expressed

on the Web, especially the use of LOOP=infinite, since users currently

have no way to disable the audio.



BIG


Description

The BIG element changes the physical rendering of the

contents of the element to a bigger font than normal text, if practical.

Minimum Attributes

<BIG>characters...

</BIG>

All Possible Attributes

<BIG

LANG="..."

DIR=ltr|rtl

ID="..."

CLASS="...">characters...

</BIG>

Elements Allowed Within...

-In progress, to be determined-

Allowed In Content Of...

-In progress, to be determined-

Variations

The BIG element is proposed in Version 3, and is implemented as

a Netscape 2.0 enhancement.

All character definition elements are Level 2.



BLINK


Description

The BLINK element changes the physical rendering of the

contents of the element to a blinking font.

Minimum Attributes

<BLINK>characters...

</BLINK>

All Possible Attributes

<BLINK>characters...

</BLINK>

Elements Allowed Within...

-In progress, to be determined-

Allowed In Content Of...

-In progress, to be determined-

Variations

This element is a Netscape 1.1 enhancement

and many browsers ignore this element.

Many users find the use of this element annoying.

It should be restricted to short term use for new information.

Netscape 1.1N permits users to disable the rendering of this element.



BLOCKQUOTE


Description

The BLOCKQUOTE element defines a separated multi-line set of text

to be rendered as quoted text.

Minimum Attributes

<BLOCKQUOTE>

</BLOCKQUOTE>

All Possible Attributes

<BLOCKQUOTE

LANG="..."

DIR=ltr|rtl

ALIGN=center|left|right|justify>

</BLOCKQUOTE>

Elements Allowed Within...

members of group

Allowed In Content Of...

Any element that permits members of group

Variations

RFC 1866 states the contents of the BLOCKQUOTE element is typically

rendered slightly indented both left and right, and/or italic font.

It also states that a single-font browser rendering may

display the contents with a vertical line

of ">" characters down the left margin

to indicate quotation in the Internet mail style.

The LANG and DIR attributes are introduced with the

internationalization proposal.

The internationalization proposal also includes

ALIGN=center|left|right|justify

Version 3 proposes replacing the BLOCKQUOTE element with the

element.

BLOCKQUOTE is a Level 0 element.



BODY


Description

The BODY element contains all the content of the document,

as opposed to the

, which contains information about

the document. All displayable elements should be within the content

of the BODY.

Minimum Attributes

All Possible Attributes

<BODY

LANG="..."

DIR=ltr|rtl

ID="..."

CLASS="..."

BACKGROUND="..."

BGCOLOR="..."

BGPROPERTIES=fixed

TEXT="#rrggbb"

LINK="#rrggbb"

VLINK="#rrggbb"

ALINK="#rrggbb">

</BODY>

Elements Allowed Within...

members of group

Allowed In Content Of...

Variations

The HTML, HEAD, and BODY elements were introduced with

RFC 1866, and are currently optional, but are considered

Level 0 elements.

The LANG and DIR attributes are introduced with the

internationalization proposal.

Version 3 proposes the attribute BACKGROUND.

Netscape 1.1 and MS Internet Explorer 2.0

include the BACKGROUND attribute, which is a URL to point

to an image to be reproduced to fill the background of the document.

Netscape 1.1 and MS Internet Explorer 2.0 both document the BGCOLOR extension.

Netscape requires an "#rrggbb" number, while

Internet Explorer also accepts the following color names:

Black, Maroon, Green, Olive, Navy, Purple, Teal, Gray, Silver, Red, Lime,

Yellow, Blue, Fuchsia, Aqua, White.

The TEXT, LINK, VLINK, and ALINK attributes are Netscape 1.1 extensions,

and also appear to work with MS Internet Explorer 2.0.

BGPROPERTIES is an MS Internet Explorer 2.0 extension and currently

only accepts the value of "fixed" which provides a watermark

(non-scrolling) background image.

Sandia Requirements

The HTML, HEAD and BODY elements are required.



BQ


Description

The BQ element defines a multi-line set of text

to be rendered as quoted text.

The content of the BQ element may optionally contain the

element.

Minimum Attributes

<BQ>

</BQ>

All Possible Attributes

<BQ

LANG="..."

DIR=ltr|rtl

ID="..."

CLASS="..."

CLEAR=left|right|all|"..."

NOWRAP>

</BQ>

Elements Allowed Within...


-others to be determined-

Allowed In Content Of...


-others to be determined-

Variations

The BQ element is proposed in Version 3 as a replacement

for the BLOCKQUOTE element.

Version 3 does not indicate the typical rendering of the contents

of the BQ element, but does indicate that it may not imply

text separation.



BR


Description

The BR element breaks for a new line, but does not produce

separation of text.

Minimum Attributes

<BR>

All Possible Attributes

<BR

CLEAR=left|right|all|"..."

ID="..."

CLASS="...">

Elements Allowed Within...

The BR element is defined as having no content.

Allowed In Content Of...

Any element that permits members of group

Variations

The CLEAR attribute is a Netscape 1.1 extension and was added

to force the line break to clear possible floating graphic images.

The standard tables proposal expects the presence of this attribute

since it expects text to flow around a table, if possible,

but does not standardize the attribute's existence as part of the proposal.

Version 3 includes CLEAR, and proposes the remaining attributes.

The BR element is Level 0.



CAPTION


Description

The CAPTION element is used to label a table or figure.

The ALIGN attribute specifies on which outside edge to place the caption.

Minimum Attributes

<CAPTION>characters... </CAPTION>

All Possible Attributes

<CAPTION

ALIGN=top|bottom|left|right

LANG="..."

DIR=ltr|rtl

ID="..."

CLASS="...">characters... </CAPTION>

Elements Allowed Within...

-In progress, to be determined-

Allowed In Content Of...

Variations

The CAPTION element was originally proposed in Version 3

and is part of the current table proposal.

This element is an extension in Netscape 1.1.



CENTER


Description

All contents within the CENTER element is to be

centered between the current left and right margin.

Minimum Attributes

<CENTER>characters... </CENTER>

All Possible Attributes

<CENTER>characters... </CENTER>

Elements Allowed Within...

-In progress, to be determined-

Allowed In Content Of...

-In progress, to be determined-

Variations

The CENTER element is a Netscape 1.1 extension.

It was provided as an alternative to the HTML+ and Version 3

ALIGN="center" proposed new attribute for all the

text block elements such as the

<P> paragraph and

<H?> header elements and the new

<DIV> element.

Both RFC 1866 and the current Version 3 specification

only include the ALIGN attribute, not the CENTER element,

and Netscape 2.0 has added the ALIGN="center" attribute.



Часть I. Что есть CSS


Немного о CSS

Так что это такое - СSS? Cascading Style Sheets (Таблицы Каскадных Стилей) - это язык, содержащий набор свойств для описания внешнего вида любых HTML документов. С его помощью дизайнер имеет полный контроль над стилем и расположением каждого элемента веб страницы, что проще и гораздо функциональнее использования обычного набора HTML тегов. Приведу пример: Вам нужно создать жирный красный подчеркнутый текст.

ПРИМЕР HTML:

<font color="red"><strong><u> Какой-то текст </u></strong></font>

А если подобный стиль нужно использовать несколько раз? Хорошо если раз 5, а если 10-20? Вот тут нам и поможет СSS. Существует три вида таблиц стилей: Внутренние таблицы стилей, Глобальные таблицы стилей и Связанные таблицы стилей. Внутренние таблицы стилей (Inline Style Sheets) при помощи специального атрибута помещаются прямо в HTML теги. Глобальные (Global Style Sheets) определяют стиль элементов во всем документе. Связанные (Linked Style Sheets) могут быть использованы для нескольких документов сразу и хранятся во внешнем файле. Подробнее обо всем этом написано ниже.

Структура и правила

Селекторы (Selectors):

Синтаксисис:

селектор {свойства}

Любой элемент HTML - это возможный CSS селектор. Свойства селектора определяют стиль элемента, для которого он определен.

ПРИМЕР:

H1 {color:red; size:20pt;}

Все элементы H1 в документе будут красного цвета, размером в 20 точек (pt, point).

Классовые селекторы (Class Selectors):

Синтаксис:

селектор.класс {cвойства}

CLASS - атрибут элемента в HTML, определяющий его класс. В CSS можно описать собственные стили для различных классов одних и тех же элементов.

ПРИМЕР:

H1.blue {color:blue; size:20pt;}

Все элементы H1 с атрибутом CLASS="blue" станут синими.

Классы могут так же быть описаны без явного привязывания их к определенным элементам.

Синтаксис:

.класс {свойства}

ПРИМЕР:

.green {color:green;}

В данном случае все элементы с атрибутом CLASS="green" станут зелеными.

ID селекторы (ID Selectors):


Cинтакс:

#id {свойства}

ID - индивидуально именованный стиль. C его помощью можно создавать стилистические исключения cреди элементов одного класса.

Индификаторы используются в основном для придания одному или нескольким элементам одного класса индивидуальных свойств. Скажем, Вы создали класс blue - синий курсив. Но Вам понадобился жирный подчеркнутый текст синим курсивом. Конечно, можно создать новый класс, но зачем? Проще описать ID. Например "boldunderline". И все элементы класса blue с значением ID "boldunderline" станут жирным подчеркнутым синим курсивом. Произойдет как бы синтез свойств класса blue и идентификатора boldunderline.

ПРИМЕР:

<html> <head> <title> Пример CSS </title> </head> <style> .blue {color:blue; font-style:italic} #boldunderline {text-decoration:underline; font-weight:bold} </style> <body> <p class="blue"> Здравствуйте, это моя домашняя страница. </p> <p class="blue" id="boldunderline"> Пока еще в стадии разработки ... </p> <p id="boldunderline">... Но скоро откроется </p> </body> </html>

Как видно из примера, атрибут ID может быть использован без указания класса (последний параграф примера. Тогда параграф будет обладать только свойствами ID "boldunderline" (в примере - жирный, подчеркнутый текст).

Контекстуальные селекторы (Contextual Selectors):

Контекстные селекторы - это сочетания нескольких обыкновенных селекторов. Стиль задается только элеметнам в заданной последовательности в зависимости от каскадного порядка.

ПРИМЕР:

P EM {color:silver;}

В данном примере все элементы EM внутри элементов P будут иметь заданный стиль.

Придание нескольким элементам одинаковых свойств:

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

ПРИМЕР:

h1,h2,h3,p,strong {color:green; font-style:italic;}



Все элементы h1, h2, h3, p и strong будут зелеными.

Псевдоклассы и псевдоэлементы :

Синтаксис:

селектор:псевдокласс { свойства }

селектор.класс:псевдокласс { свойства }

селектор:псевдоэлемент { свойства }

селектор.класс:псевдоэлемент { свойства }

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

Список псевдоклассов и псевдоэлементов :

Anchor Pseudo Classes - эти псевдоклассы элемента <a href=" ">, обозначающего ссылку. Псевдоклассы этого элемента: (ссылка), active (активная ссылка), visited (посещенный ранее URL), hover (псевдокласс, возникающий при поднесении курсора к ссылке, не работает в Нетскейпе).

First Line Pseudo-element - first-line. Этот псевдоэлемент может быть использован с block-level элементами (p, h1 и т.д.). Он изменяет стиль первой строки этих элементов.

First Letter Pseudo-element - first-letter. Похож на first-line, но влияет не на всю строку, а только на первый символ.

ПРИМЕР :

a:link,a:visited {color:blue} a:active {color:red} a:hover {text-decoration:none}

В данном примере все элементы Anchor (ссылки) будут синими. При нажатии (в активном состоянии) поменяют цвет на красный. И при подведении курсора мышки исчезнет подчеркивание.

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

Внутренние Таблицы Стилей

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

ПРИМЕР HTML:

<font color="blue" size="3" face="Arial"> Вперед в будущее </font>



ПРИМЕР INLINE STYLE SHEET:

<font style="color:blue; font-size:12pt; font-family:Arial"> Вперед в будущее </font>

Как можно заметить, код Inline Style Sheet получился больше чем HTML. Поэтому ISS следует использовать только если необходимо задать определенному элементу свой индивидуальный стиль, существующий в классификации CSS и нереализованный в HTML. Или же при необходимости абсолютно позиционировть данный элемент.

Глобальные Таблицы Стилей

Глобальные стили задают вид элементов всего документа. Для этого используется тег <STYLE type="text/css">. Он размещается в заголовке документа.

ПРИМЕР:

<html> <head> <title> Пример Глобальных Таблиц Стилей </title> </head> <STYLE type="text/css"> h1{color:red; font-style:italic; font-size:32px} .blue{color:blue} #bold{font-weight:bold} </STYLE> <body> <h1> Этот заголовок написан крупным красным курсивом </h1> Вот <font class="blue"> это </font> слово - синее, a <font id="bold"> это</font> - жирное. </body> </html>

В данном примере все элементы H1 будут написаны крупным красным курсивым, все элементы с указанным классом BLUE будут синими , а все элементы с идентификатором ID="Bold" станут жирными. Для простоты вместо <STYLE type="text/css"> можно использовать просто тег <STYLE>, что менее граммотно.

Связанные Таблицы Стилей

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

ПРИМЕР:

Файл styles.css

<STYLE type="text/css"> body {background:black; font-size:9pt; color:red; font-family:Arial Black} .base{color:blue; font-style:italic} h1 {color:white} #bold {font-weight:bold} </STYLE>

В самих же HTML документах делается ссылка на этот файл при помощи тега <LINK>. Выглядит это так: <LINK rel="STYLESHEET" TYPE="text/css" HREF="путь до файла">

ПРИМЕР:

Файл Index.html

<html> <head> <title> Просто еще один пример </title> </head> <LINK rel="stylesheet" type="text/css" href="styles.css"> <body> Содержание Документа </body> </html>

На этом я заканчиваю первую часть руководства и перехожу ко второй части.


Часть III. Дополнения


Меры длины

Синтаксис: "+" (можно опустить) или "-" затем [число] плюс [единица измерения] (без пропусков)

ПРИМЕР: -566pt

Единицы длинны : ex - x-height, ширина буквы "x" используемого элементом шрифта

px - pixels, пикселы

in - inches, дюймы

cm - centimeters, сантиметры

mm - millimeters, миллиметры

pt - points, точка (1pt = 1/72in)

pc - picas (1pc = 12pt)

Процентные меры

Синтаксис : "+" или "-" затем [число] плюс "%" (без пропусков)

ПРИМЕР : -566%

Цвета

Синтаксис: [color]

ПРИМЕР : magenta

Значением цвета может быть его название (red , lightgreen, coral и т.д.) или RGB значение

Способы выразить цвет в RGB (red green blue) :

#rrggbb (например, #00cc00) rgb(x,x,x) -- где "х" число от 0 до 255 (например, rgb(0,204,0)) #rgb (например, #0c0) rgb (x%,x%,x%) -- где "х%" число от 0.0 до 100.0 (например, 0%,80%,0%)

Все примеры отображают один и тот же цвет

Ссылки

Синтаксис: "URL" , потом в скобках приводится ссылка.Ссылку также можно, помимо скобок, заключить в одинарные или двойные кавычки (без пропусков)

ПРИМЕР : URL('cool.gif')



Часть Il. Cвойства CSS


Свойства Font

font-family

Возможные значения:

[1] любой шрифт

*Применимо для: всех элементов

Описание: это свойство определяет используемый элементом шрифт. Если указать URL, то шрифт автоматически установится на компьютер пользователя

ПРИМЕР:

font-family:Arial Black URL('arialblack.ttf')

font-style

Возможные значения:

[1] normal - без изменений

[2] italic - курсив

*Применимо для: всех элементов

Описание: стиль элемента. Курсивный или обычный

ПРИМЕР:font-style:italic

font-variant

Возможные значения:

[1] normal - без изменений

[2] small-caps - заменяет все маленькие буквы на большие

*Применимо для: всех элементов

Описание: варианты отображения шрифта. Нетскейп не поддерживает это свойство

ПРИМЕР:font-variant:small-caps

font-weight

Возможные значения:

[1] normal - без изменений

[2] bold - жирный

[3] bolder - очень жирный (в MSIE не отличается от bold, в Нетскейпе от нормал)

[4] lighter - тонкий (не отличается от normal)

[5] любое значение от 100 до 900

*Применимо для: всех элементов

Описание: выделение (жирность) элемента

ПРИМЕР:font-weight:bold

font-size

Возможные значения:

[1] размер (+)

[2] xx-small, x-small, small, medium, large, x-large, xx-large - любое из этих значений

[3] smaller, larger - любое из этих значений

*Применимо для: всех элементов

Описание: размер шрифта

ПРИМЕР:font-size:30pt

font

Возможные значения:

[1] font-family

[2] font-style

[3] font-variant

[4] font-weight

[5] font-size

*Применимо для: всех элементов

Описание: обобщает вышеперечисленные свойства

ПРИМЕР:font: italic bolder Arial 12pt

Свойства Text

word-spacing

Возможные значения:

[1] длина (+)

[2] normal - без изменений

*Применимо для: всех элементов

Описание: расстояние между cловами. Не работает ни в Нетскейпе, ни в MSIE

ПРИМЕР:word-spacing:0.4em

text-decoration

Возможные значения:

[1] none - нет

[2] underline - подчеркнутый

[3] overline - надчеркнутый (не поддерживается в Нетскейпе)

[4] line-through - перечеркнутый

[5] blink - мигающий (не поддерживается в IE)

*Применимо для: всех элементов

Описание: "украшение" текста

ПРИМЕР:text-decoration:line-through


letter-spacing

Возможные значения:

[1] длина (+)

[2] normal - без изменений

*Применимо для: всех элементов

Описание: расстояние между буквами. Не работает в Нетскейпе

ПРИМЕР:letter-spacing:100

vertical-align

Возможные значения:

[1] baseline

[2] sub

[3] super

[4] top-text

[5] top

[6] middle

[7] bottom

[8] bottom-text

[9] процент

*Применимо для: inline элементов

Описание: позиционирование элементов по отношению к другим элементам стоящих в одном ряду. Не работает в Нетскейпе

ПРИМЕР:vertical-align:top-text

text-transform

Возможные значения:

[1] none - нет

[2] Capitalize - каждое слово начинается с большой буквы

[3] UPPERCASE - каждая буква текста становится заглавной

[4] lowercase - каждая буква текста становится маленькой

*Применимо для: inline элементов

Описание: изменение текста. Не работает в Нетскейпе

ПРИМЕР:text-transform:Capitalize

text-align

Возможные значения:

[1] left - текст слева

[2] right - текст справа

[3] center - текст по центру

[3] justify - текст "растянут"

*Применимо для: block-level элементов

Описание: положение текста

ПРИМЕР:text-align:right

text-indent

Возможные значения:

[1] длина (+)

[2] процент (+)

*Применимо для: block-level элементов

Описание: отступ

ПРИМЕР:text-indent:30 em

line-height

Возможные значения:

[1] normal - без изменений

[2] длина (+)

[3] процент

*Применимо для: всех элементов

Описание: отступ сверху

ПРИМЕР:line-height:100%

Свойства Color и Background

color

Возможные значения:

[1] цвет (+)

*Применимо для: всех элементов

Описание: цвет

ПРИМЕР:color:#f00000

backgroung-color

Возможные значения:

[1] цвет (+)

*Применимо для: всех элементов

Описание: цвет фона элемента

ПРИМЕР:background-color:#f00000

background-image

Возможные значения:

[1] none - нет

[2] URL (+)

*Применимо для: всех элементов

Описание: фоновое изображение

ПРИМЕР:background-image:URL(cool.gif)

background-repeat

Возможные значения:

[1] repeat - размножает фоновое изображение во всех направлениях

[2] repeat-x - размножает фоновое изображение горизонтально



[3] repeat-y - размножает фоновое изображение вертикально

[4] no-repeat - не повторяющиеся изображение

*Применимо для: всех элементов

Описание: повторения фонового изображения

ПРИМЕР:background-repeat:no-repeat

background-attachment

Возможные значения:

[1] scroll - фоновое изображение скроллится всесте с содержанием документа

[2] fixed - не скроллится. Фиксируется в одном месте. Не работает в Нетскейпе

*Применимо для: всех элементов

Описание: возможность прокрутки фонового изображения

ПРИМЕР:background-attachment:fixed

background-position

Возможные значения:

[1] процент от ширины + процент от высоты (+)

[2] top, middle, bottom - одно из значений

[3] left, center, right - одно из начений

[4] расстояние от левого края + расстояние от вершины

*Применимо для: block-level и replaced элементов

Описание: положение фонового изображения (работает с background-repeat равным repeat-x, repeat-y или no-repeat)

ПРИМЕР:background-position:50%0%

background

Возможные значения:

[1] background-color

[2] background-image

[3] backgroun-position

[4] background-attachment

[5] background-repeat

*Применимо для: всех элементов

Описание: обобщает вышеперечисленные свойства

ПРИМЕР:background:no-repeat black fixed 50%0%

Свойства Box

margin-top

Возможные значения:

[1] длина (+)

[2] процент (+)

[3] auto - автоматически

*Применимо для: всех элементов

Описание: определяет отступ сверху

ПРИМЕР:margin-top:100

margin-right

Возможные значения:

[1] длина (+)

[2] процент (+)

[3] auto - автоматически

*Применимо для: всех элементов

Описание: определяет отступ справа

ПРИМЕР:margin-right:100%

margin-bottom

Возможные значения:

[1] длина (+)

[2] процент (+)

[3] auto - автоматически

*Применимо для: всех элементов

Описание: определяет отступ снизу

ПРИМЕР:margin-bottom:100em

margin-left

Возможные значения:

[1] длина (+)

[2] процент (+)

[3] auto - автоматически

*Применимо для: всех элементов

Описание: определяет отступ слева

ПРИМЕР:margin-left:100pt

margin

Возможные значения:



[1] margin-top

[2] margin-right

[3] margin-left

[4] margin-bottom

*Применимо для: всех элементов

Описание: обобщает все вышеперечисленные свойства

ПРИМЕР:background:100pt

padding-top

Возможные значения:

[1] длина (+)

[2] процент (+)

*Применимо для: осех элементов

Описание: отступ от верхнего border'а

ПРИМЕР:padding-top:100pt

padding-right

Возможные значения:

[1] длина (+)

[2] процент (+)

*Применимо для: всех элементов

Описание: отступ от правого border'а

ПРИМЕР:padding-right:100%

padding-bottom

Возможные значения:

[1] длина (+)

[2] процент (+)

*Применимо для: всех элементов

Описание: отступ от нижнего border'а

ПРИМЕР:padding-bottom:100em

padding-left

Возможные значения:

[1] длина (+)

[2] процент (+)

*Применимо для: всех элементов

Описание: отступ от левого border'а

ПРИМЕР:padding-top:100

padding

Возможные значения:

[1] padding-top

[2] padding-right

[3] padding-left

[4] padding-bottom

*Применимо для: всех элементов

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

ПРИМЕР:padding:100px

border-top-width

Возможные значения:

[1] длина (+)

[2] thin, medium или thick

*Применимо для: всех элементов

Описание: толщина верхнего border'а

ПРИМЕР:border-top-width:100pt

border-right-width

Возможные значения:

[1] длина (+)

[2] thin, medium или thick

*Применимо для: всех элементов

Описание: толщина правого border'а

ПРИМЕР:border-right-width:thick

border-bottom-width

Возможные значения:

[1] длина (+)

[2] thin, medium или thick

*Применимо для: всех элементов

Описание: толщина нижнего border'а

ПРИМЕР:border-bottom-width:100em

border-left-width

Возможные значения:

[1] длина (+)

[2] thin, medium или thick

*Применимо для: всех элементов

Описание: толщина левого border'а

ПРИМЕР:border-left-width:medium



border-width

Возможные значения:

[1] border-top-width

[2] border-right-width

[3] border-left-width

[4] border-bottom-width

*Применимо для: всех элементов

Описание: толщина border'ов. Можно задать несколько значений одновременно (до четырех) для разных border'ов. Если установлено одно значение - задается единая толщина для всех сторон, если два - то задаются различная толщина для прилежащих сторон, а если четыре - то задаются индивидуальная толщина для всех сторон

ПРИМЕР:border-width: 15pt

border-color

Возможные значения:

[1] цвет (+)

*Применимо для: всех элементов

Описание: Цвет border'а. Не работает в Нетскейпе

ПРИМЕР:border-color:green

border-style

Возможные значения:

[1] none

[2] dotted, dashed, solid, double, groove, ridge, inset, outset

*Применимо для: всех элементов

Описание: стиль border'ов. Можно задать несколько значений одновременно (до четырех) для разных border'ов. Если установлено одно значение - задается единый стиль для всех сторон, если два - то задаются различные стили для прилежащих сторон, а если четыре - то задаются индивидуальные стили для всех сторон

ПРИМЕР:border-style: dotted groove

border-top

Возможные значения:

[1] border-top-width

[2] border-style

[3] border-color

*Применимо для: всех элементов

Описание: обобщает вышеперечисленные свойства для верхнего border'а

ПРИМЕР:border-top: 100em red groove

border-right

Возможные значения:

[1] border-right-width

[2] border-style

[3] border-color

*Применимо для: всех элементов

Описание: обобщает вышеперечисленные свойства для правого border'а

ПРИМЕР:border-right: 5pt magenta solid

border-left

Возможные значения:

[1] border-left-width

[2] border-style

[3] border-color

*Применимо для: всех элементов

Описание: обобщает вышеперечисленные свойства для левого border'а

ПРИМЕР:border-left: 15pc coral inset

border-bottom

Возможные значения:

[1] border-bottom-width

[2] border-style

[3] border-color

*Применимо для: всех элементов

Описание: обобщает вышеперечисленные свойства для нижнего border'а

ПРИМЕР:border-bottom: 30 orange outset



border

Возможные значения:

[1] border-width

[2] border-style

[3] border-color

*Применимо для: всех элементов

Описание: обобщает вышеперечисленные свойства

ПРИМЕР:border: thik black double

width

Возможные значения:

[1] длина (+)

[2] процент (+)

*Применимо для: block-level и replaced элементов

Описание: ширина элемента

ПРИМЕР:width:10%

height

Возможные значения:

[1] длина (+)

[2] процент (+)

*Применимо для: block-level и replaced элементов

Описание: высота элемента

ПРИМЕР:height:100pt

float

Возможные значения:

[1] left - слева

[2] right - справа

[3] none - по умолчанию

*Применимо для: всех элементов

Описание: расположение элемента

ПРИМЕР:float:right

clear

Возможные значения:

[1] left - слева

[2] right - справа

[3] both - c двух сторон

[4] none - по умолчанию

*Применимо для: всех элементов

Описание: расположение других элементов вокруг данного

ПРИМЕР:clear:both

Классификация

display

Возможные значения:

[1] none - не отображается

[2] block - разбивает строку до и после элемента (т.е. элемент не может находится на одной линии с другими элементами)

[3] inline - не разбивает строку

[4] list-item - разбивает линию строку до и после элемента + добавляет маркер как у list-item элементов

*Применимо для: всех элементов

Описание: определяет, как будет отображаться элемент

ПРИМЕР:display:none

white-space

Возможные значения:

[1] normal - "сжимает" несколько подряд идущих пробелов в один

[2] pre - допускает отображение несколькольких подряд идущих пробелов

[3] nowrap - не допускает перенос строки без тега <BR>

*Применимо для: block-level элементов

Описание: оприделяет, как будут отображаться пробелы между элементами

ПРИМЕР:white-space:nowrap

list-style-type

Возможные значения:

[1] disc, circle, square, decimal, lower-roman, upper-roman, lower-alpha или upper-alpha

[2] none - никакой

*Применимо для: элементов со значением display равным list-item

Описание: определяет вид list-item маркера. Если значение list-style-image равно none или не уточнено

ПРИМЕР:list-style-type:lower-alpha



list-style-image

Возможные значения:

[1] none - нет

[2] URL (+)

* Применимо для: элементов со значением display равным list-item

Описание: задает вид list-item маркера в виде картинки

ПРИМЕР:list-style-image:URL(cool.gif)

list-style-position

Возможные значения:

[1] inside - при переносе следующие строки будут отображаться без отступа

[2] outside - по умолчанию

*Применимо для: элементов со значением display равным list-item

Описание: определяет положение маркера в зависимости от list item элемента

ПРИМЕР:list-style-position:inside

list-style

Возможные значения:

[1] list-style-type

[2] list-style-position

[3] list-style-image

*Применимо для: элементов со значением display равным list-item

Описание: обобщает вышеперечисленные свойства

ПРИМЕР:list-style:inside


Чем замечательно это руководство?


Существует немало отличных руководств по HTML - кому нужно еще одно?

Этот документ создан чтобы заполнить определенную нишу. Он служит краткой "подсказкой", которую Вы можете использовать, чтобы найти подходящий элемент HTML при создании вашей страницы. предоставляют гораздо более полную информацию о том, как использовать конкретные элементы HTML и как работает HTML вообще. Если Вы новичок, Вы можете сначала обратиться к одному из этих руководств.

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

Моя содержит ссылки на различные страницы, которые предоставляют информацию об HTML и разработке страниц. Это хорошая начальная точка для тех, у кого есть вопросы, выходящие за рамки настоящего "краткого руководства".

Эта страница предназначена для людей, которые знают достаточно, чтобы не нуждаться в подробных пошаговых инструкциях, но не помнят наизусть точный формат всех элементов HTML. Если Вам нужен справочный материал, в который Вы можете заглянуть, без того, чтобы читать дополнительные объяснения, это руководство - для Вас.



Что можно делать с помощью cookie?


Сами по себе cookies не могут делать ничего, это только лишь некоторая

информация. Однако, сервер может на содержащуюся в cookies информацию.

Например, в случае авторизованного доступа к чему либо через WWW,

в cookies сохраняется login и password в течение сессии, что позволяет

не вводить их при запросе каждого запаролированного документа.

Другой пример: cookies могут использоваться для построения персонализированных

страниц. Чаще всего встречается такое - на некотором сервере Вас

просят ввести свое имя, и каждый раз, когда Вы заходите на первую

страницу этого сервера, Вам пишут что-то типа "Hello, your_name!".

На использовании cookies также часто строят функцию оформления

заказа в онлайновых магазинах, в частности, в Амазоне, такая своеобразная

виртуальная корзина покупателя, как в обычном реальном супермаркете.



Что такое cookie?


Cookie является решением одной из наследственных проблем HTTP

спецификации. Эта проблема заключается в непостоянстве соединения

между клиентом и сервером, как при FTP или Telnet сессии, т.е.

для каждого документа (или файла) при передаче по HTTP протоколу

посылается отдельный запрос. Включение cookie в HTTP протокол

дало частичное решение этой проблемы.

Cookie это небольшая порция информации, которую сервер передает

клиенту. Клиент (броузер) будет хранить эту информацию и передавать

ее серверу с каждым запросом как часть HTTP заголовка. Некоторые

cookie хранятся только в течение одной сессии, они удаляются после

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

записываются в файл. Обычно этот файл называется 'cookie.txt'.



Что такое cookies и как с ними работать


Откуда возник термин "cookie" никто достоверно не знает, хотя считается, что во времена зарождения где-то использовалось словосочетание Magic Cookies. Имелись в виду "квитанции" (token, ticket), которыми обменивались программы.

Cookie является решением одной из наследственных проблем (HyperText Transfer Protocol). Эта проблема заключается в непостоянстве соединения между клиентом и сервером, как при или Telnet сессии, т.е. для каждого документа (или файла) при передаче по HTTP протоколу посылается отдельный запрос. Включение cookie в HTTP протокол дало частичное решение этой проблемы. Иначе говоря, транзакция завершается после того, как браузер сделал запрос, а сервер выдал соответствующий ответ. Сразу после этого сервер "забывает" о пользователе и каждый следующий запрос того же пользователя считает новым пользователем.

Используя cookie, можно эмулировать сессию по HTTP протоколу. Коротко принцип эмуляции сессии таков: на первом запросе выдается соотвествующее значение cookie, а при каждом последующем запросе это значение читается из переменной окружения HTTP_COOKIE и соответствующим образом обрабатывается.

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

Cookie - это небольшая порция текстовой информации, которую сервер передает браузеру. Браузер будет хранить эту информацию и передавать ее серверу с каждым запросом как часть HTTP заголовка. Одни значения cookie могут храниться только в течение одной сессии, они удаляются после закрытия броузера. Другие, установленные на некоторый период времени, записываются в файл. Обычно этот файл называется 'cookies.txt' и лежит в рабочей директории установленного на компьютер браузера. У меня, к примеру, в этом файле содержится следующее:


# Netscape HTTP Cookie File # http://www.netscape.com/newsref/std/cookie_spec.html # This is a generated file! Do not edit. www.webclub.ru FALSE /ourweb FALSE 946683907 1 1 .bizlink.ru TRUE / FALSE 915148488 u_irads_watch 627633 .doubleclick.net TRUE / FALSE 1920499140 id 332666ae .yahoo.com TRUE / FALSE 915144943 Y v=1&n=6jm0u5lgubh1k&l=0b8a0d3h/o&p=m29vvru7130a .yahoo.com TRUE / FALSE 915144943 T z=3587c277 mail.yahoo.com TRUE / FALSE 943919791 YM.Login id%3d%241%24rm%24L6MDTCsrCNnk3syLZl2zo.%26sid%3dszxPh4SazGg/%250a%26ts%3dX%2588%25c3%2506%25d3%25e5I-%255d%253f%2597%25ddu .preferences.com TRUE / FALSE 1182140165 PreferencesID 3AGN9WD1D80gQfjvjAxRuq .geocities.com TRUE / FALSE 900743217 iTag gY6bZzWItDQAAWll3T8ASk1vbiwgMTMg search.netscape.com FALSE / FALSE 942189477 NGUserID cfc84d2a-522-898178454-1 www.webclub.ru FALSE FALSE 913543999 visited yes

Как видно, у меня оставили cookie , поисковая система , бесплатный почтовый сервер , рекламные сети и отечественная . В настоящее время большинство браузеров поддерживает механизм cookies. Я точно знаю, что cookie можно использовать во всех версиях Netscape Navigator, Microsoft Internet Explorer и NCSA Mosaic.

Что можно делать с помощью cookie?

Сами по себе cookies не могут делать ничего, это только лишь некоторая текстовая информация. Однако сервер может считывать содержащуюся в cookies информацию и на основании ее анализа совершать те или иные действия. Например, в случае авторизованного доступа к чему либо через WWW в cookies сохраняется login и password в течение сессии, что позволяет пользователю не вводить их снова при запросах каждого документа, защищенного паролем.

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

Еще одна распространенная область использования cookies - при настройке индивидуального профиля каждого зарегистрированного пользователя.

И, наконец, самая последняя область - использование механизма cookie в рекламном бизнесе на Интернет. Еще год назад реклама в Интернет за деньги была довольно экзотической услугой, а сейчас этот бизнес уже устоялся и стремительно развивается. Однако рекламодатели начинают предъявлять более жесткие условия к оценке эффективности своих расходов. Cookie используются для таргетинга рекламы (определения целевой аудитории, например, по географическому положению пользователей), отслеживания интересов пользователей, учета количества показов и проходов сквозь баннеры.

Работа с cookie



Теперь, когда с принципами действия и областями применения cookie все более или менее понятно, можно приступить к изучению формата и синтаксиса, а также способов задания значений cookie.

Формат и синтаксис cookie

Предлагаемое мной в этой статье описание формата и синтаксиса cookie является вольным пересказом изначальной спецификации Netscape Communications "". В настоящий момент идет разработка более строгой спецификации для cookie. Итак, cookie является частью HTTP заголовка. Полное описание поля Set-Cookie HTTP заголовка:

Set-Cookie: NAME=VALUE; expires=DATE; path=PATH; domain=DOMAIN_NAME; secure

Минимальное описание поля Set-Cookie HTTP заголовка:

Set-Cookie: NAME=VALUE;

NAME=VALUE - строка символов, исключая перевод строки, запятые и пробелы. NAME-имя cookie, VALUE - значение. Не допускается использование двоеточия, запятой и пробела.

expires=DATE - время хранения cookie, т.е. вместо DATE должна стоять дата в формате "expires=Monday, DD-Mon-YYYY HH:MM:SS GMT", после которой истекает время хранения cookie. Если этот атрибут не указан, то cookie хранится в течение одного сеанса, до закрытия броузера.

domain=DOMAIN_NAME - домен, для которого значение cookie действительно. Например, "domain=cit-forum.com". В этом случае значение cookie будет действительно и для домена cit-forum.com, и для www.cit-forum.com. Но не радуйтесь, указания двух последних периодов доменных имен хватает только для "COM", "EDU", "NET", "ORG", "GOV", "MIL" и "INT". Для обсуждаемых сейчас новых семи доменов первого уровня ("FIRM", "SHOP", "WEB", "ARTS", "REC", "INFO", "NOM"), вероятно, это условие сохранится. Для доменов иерархии "RU", например, придется указывать три периода.

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

path=PATH - этот атрибут устанавливает подмножество документов, для которых действительно значение cookie. Например, указание "path=/win" приведет к тому, что значение cookie будет действительно для множества документов в директории /win/, в директории /wings/ и файлов в текущей директории с именами типа wind.html и windows.shtml. Для того, чтобы cookie отсылались при каждом запросе к серверу, необходимо указать корневой каталог сервера, например, "path=/".

Если этот атрибут не указан, то значение cookie распространяется только на документы в той же директории, что и документ, в котором было установлено значение cookie.

secure - если стоит этот маркер, то информация cookie пересылается только через HTTPS (HTTP с использованием SSL - Secure Socket Level), в защищенном режиме. Если этот маркер не указан, то информация пересылается обычным способом.

Синтаксис HTTP заголовка для поля Cookie



Когда запрашивается документ с HTTP сервера, браузер проверяет свои cookie на предмет соответствия домену сервера и прочей информации. В случае, если найдены удовлетворяющие всем условиям значения cookie, броузер посылает их в серверу в виде пары имя/значение:

Cookie: NAME1=OPAQUE_STRING1; NAME2=OPAQUE_STRING2 ...

Дополнительные сведения

Одновременно можно задавать несколько значений cookie.

В случае, если cookie принимает новое значение при имеющемся уже в браузере cookie с совпадающими параметрами NAME, domain и path, то старое значение заменяется новым. В остальных случаях новые значения cookie добавляются к старым.

Использование expires не гарантирует сохранность cookie в течение заданного периода времени, поскольку клиент (браузер) может удалить запись из-за нехватки выделенного места или каких-либо других причин.

Клиент (браузер) имеет следующие ограничения для cookies:

всего может храниться до 300 значений cookies каждый cookie не может превышать 4Кбайт с одного сервера или домена может храниться до 20 значений cookie

Если ограничение 300 или 20 превышается, то удаляется первая по времени запись. При превышении лимита объема в 4Кбайт корректность значения cookie страдает - отрезается кусок записи (с начала этой записи) равный превышению объема.

В случае кэширования документов, например, proxy-сервером, поле Set-cookie HTTP заголовка никогда не кэшируется.

Если proxy-сервер принимает ответ, содержащий поле Set-cookie в заголовке, предполагается, что поле доходит до клиента вне зависимости от кода возврата 304 (Not Modified) или 200 (OK). Соответственно, если клиентский запрос содержит в заголовке Cookie, то он должен дойти до сервера, даже если жестко установлен параметр If-modified-since.

Ниже приведено несколько примеров, иллюстрирующих использование cookies

Пример 1. Управление подмножеством документов, для которых действительны значения cookie, и их сроком годности

Браузер запрашивает документ и принимает от сервера в ответ:

Set-Cookie: CUSTOMER=WILE_E_COYOTE; path=/; expires=Wednesday, 09-Nov-99 23:12:40 GMT



Когда браузер запрашивает URL с путем "/" на этом сервере, он посылает серверу:

Cookie: CUSTOMER=WILE_E_COYOTE

Браузер запрашивает документ и принимает от сервера в ответ:

Set-Cookie: PART_NUMBER=ROCKET_LAUNCHER_0001; path=/

Когда браузер запрашивает URL с путем "/" на этом сервере, он посылает серверу уже два значения cookie:

Cookie: CUSTOMER=WILE_E_COYOTE; PART_NUMBER=ROCKET_LAUNCHER_0001

Сервер установил еще одно значение cookie, на этот раз с другой областью действия:

Set-Cookie: SHIPPING=FEDEX; path=/foo

Теперь браузер, запрашивая URL с путем "/" на этом сервере, посылает лишь два значения cookie:

Cookie: CUSTOMER=WILE_E_COYOTE; PART_NUMBER=ROCKET_LAUNCHER_0001

и лишь при запросе браузером документов с путем "/foo" на этом сервере посылаются все три значения cookie:

Cookie: CUSTOMER=WILE_E_COYOTE; PART_NUMBER=ROCKET_LAUNCHER_0001; SHIPPING=FEDEX

Комментарий: после закрытия браузера в файле 'cookies.txt' останется только одно значение cookie:

CUSTOMER=WILE_E_COYOTE

поскольку только для него установлен срок годности - 9 ноября 1999 года. Все остальные значения не будут сохранены.

Пример 2. Значения cookie с одинаковыми именами, но разными параметрами

Браузер запрашивает документ и принимает ответ от сервера:

Set-Cookie: PART_NUMBER=ROCKET_LAUNCHER_0001; path=/

Когда браузер запрашивает URL с путем "/" на этом сервере, он посылает значение:

Cookie: PART_NUMBER=ROCKET_LAUNCHER_0001

Во второй раз, запрашивая документ, браузер принимает от сервера значение cookie с другой областью действия:

Set-Cookie: PART_NUMBER=RIDING_ROCKET_0023; path=/ammo

Когда браузер запрашивает URL с путем "/ammo" на этом сервере, он посылает значение:

Cookie: PART_NUMBER=RIDING_ROCKET_0023; PART_NUMBER=ROCKET_LAUNCHER_0001

Комментарий: здесь мы имеем две пары имя/значение с одинаковым именем "PART_NUMBER". При закрытии браузера ни одно из этих значений не сохранится, поскольку не задан параметр expires.

Способы задания значений cookie



Способ задания значений cookie зависит того, как эти значения будут использоваться и какие имеются серверные ресурсы. Можно манипулировать временем жизни выставленных cookie и устанавливать подмножества URL (Universal Resource Locator), в которых заданные значения действительны. Есть несколько способов задания, наиболее часто используются три - через META-таги языка HTML, JavaScript и CGI-скрипты. Любым способом можно задавать как одно, так и несколько значений сразу. Сразу хочу предупредить - не забывайте об ограничениях по объему и количеству значений cookie, а также параметре domain, так как помимо основного доменного имени узла часто бывает несколько алиасов (alias).

1. Задание cookie с помощью META-тагов

Простейший способ выставить cookie - использовать соответствующий META-таг в контейнере <HEAD>...</HEAD> любого статического HTML документа. В общем случае это выглядит следующим образом:

<META HTTP-EQUIV="Set-Cookie" CONTENT="NAME=value; EXPIRES=date; DOMAIN=domain_name; PATH=path; SECURE">

Такой способ задания cookie, на мой взгляд, наиболее интересен для создателей маленьких домашних страничек, когда нет возможности писать свои собственные . А если есть поддержка (Server Side Include) или , то можно делать интерактивные страницы вообще без использования внешних CGI-скриптов. При наличии SSI на узле создание интерактивности с использованием механизма cookie становится просто удовольствием.

С помощью <META HTTP-EQUIV="Set-Cookie" CONTENT="..."> cookie задается на любой статичной странице, директивой <!--#echo var="..."--> можно потом считать любые переменные окружения, в том числе и ранее заданные значения cookie (переменная HTTP_COOKIE), а с помощью конструкций <!--#if expr="..." -->, <!--#elif expr="..." --> и <!--#else --> задавать различные варианты внешнего вида страниц. Так же просто можно проделывать подобные вещи, используя PHP/Fi.

Если же ни SSI, ни PHP/Fi недоступен, то можно задавать значение cookie, используя JavaScript.

2. Задание cookie с помощью JavaScript



Можно задавать значение cookie, используя язык . Единственный недостаток этого способа заключается в том, что не все браузеры его поддерживают. Ниже приведены примеры функций JavaScript, написанные для скрипта "Органайзер". Этот скрипт, по-моему, один из лучших образцов программирования на JavaScript с использованием cookie, поэтому я настоятельно рекомендую посмотреть на работающий образец по адресу

Пример 3. Функция установки значения cookie

// name - имя cookie // value - значение cookie // [expires] - дата окончания действия cookie (по умолчанию - до конца сессии) // [path] - путь, для которого cookie действительно (по умолчанию - документ, в котором значение было установлено) // [domain] - домен, для которого cookie действительно (по умолчанию - домен, в котором значение было установлено) // [secure] - логическое значение, показывающее требуется ли защищенная передача значения cookie

function setCookie(name, value, expires, path, domain, secure) { var curCookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expires.toGMTString() : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "") if (!caution (name + "=" + escape(value)).length

Пример 4. Функция чтения значения cookie

Возвращает установленное значение или пустую строку, если cookie не существует.

// name - имя считываемого cookie

function getCookie(name) { var prefix = name + "=" var cookieStartIndex = document.cookie.indexOf(prefix) if (cookieStartIndex == -1) return null var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length) if (cookieEndIndex == -1) cookieEndIndex = document.cookie.length return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex)) }

Пример 5. Функция удаления значения cookie

Принцип работы этой функции заключается в том, что cookie устанавливается с заведомо устаревшим параметром expires, в данном случае 1 января 1970 года.



// name - имя cookie // [path] - путь, для которого cookie действительно // [domain] - домен, для которого cookie действительно function deleteCookie(name, path, domain) { if (getCookie(name)) { document.cookie = name + "=" + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + "; expires=Thu, 01-Jan-70 00:00:01 GMT" }

Работающий , построенный на JavaScript и использующий механизм cookie.

3. Задание cookie с помощью CGI-скриптов

Самый мощный и гибкий способ управления документами с использованием механизма cookie - с помощью CGI-скриптов. Задание значения cookie на будет выглядеть следующим образом:

print "Content-type: text/html\n"; print "Set-Cookie: username=aaa13; expires=Friday, 31-Dec-99 23:59:59 GMT; path=/; domain=www.citforum.ru;\n\n";

Скрипт при выдаче результатов работы генерирует HTTP заголовок:

Content-type: text/html Set-Cookie: "username=aaa13; expires=Friday, 31-Dec-99 23:59:59 GMT; path=/; domain=www.citforum.ru;"

Чтобы прочитать в скрипте ранее заданное значение cookie, используется переменная окружения HTTP_COOKIE.

$cookie = $ENV{'HTTP_COOKIE'};

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

Совсем недавно я написал систему для , которая использует механизм cookie для защиты от накрутки очков. В ней, задавая и анализируя значения cookie, я либо не допускаю пользователя до голосования (если отключены cookie в браузере или пользователь один раз уже проголосовал), либо разрешаю голосовать (если соответствующее значение не задано). Обмануть такую систему можно, только стирая каждый раз файл cookies.txt. Можно было бы использовать файл логов голосования на узле, но возникали бы проблемы разделения доступа к файлу и замедление работы вследствие использования медленных дисковых операций.

Немного о проблемах, связанных с использованием cookie

Главной проблемой является изначальное недоверие пользователей к тому, что удаленные сервера без их (пользователей) ведома и согласия записывают на их собственные локальные диски какую либо информацию. Бытовали также слухи о том, что с помощью механизма cookie можно прочесть любую информацию с любого компьютера. Это неправда, к тому же современные версии браузеров позволяют контролировать прием cookie или вовсе блокировать его. Кроме того, появилось множество специальных утилит для управления приемом cookie, так называемые Cookie Managers.

Другая сторона этой проблемы заключается в том, что на узлах Сети аккумулируются огромные массивы данных с персональной информацией, необходимые для коммерческих серверов. Вот здесь и появляются повышенные требования к защите от несанкционированного доступа к этим данным. Пользователи таких серверов должны быть уверены, что их имена, адреса электронной почты, телефонные номера и проч., не попадут в чужие руки. В противном случае последствия могут оказаться катастрофическими для "проштрафившихся" коммерческих серверов.


CITE


Description

The CITE element changes the character rendering of the

contents of the element to logically represent a citation.

Minimum Attributes

<CITE>characters...

</CITE>

All Possible Attributes

<CITE

LANG="..."

DIR=ltr|rtl

ID="..."

CLASS="...">characters...

</CITE>

Elements Allowed Within...

members of group

Allowed In Content Of...

Any element that permits members of group

Variations

This is typically rendered in italics.

The LANG and DIR attributes are introduced with the

internationalization proposal.

All character definition elements are Level 2.



CODE


Description

The CODE element changes the character rendering of the

contents of the element to logically represent computer code.

It is intended for short words or phrases. PRE is recommended

for multiple-line listings.

Minimum Attributes

<CODE>characters...

</CODE>

All Possible Attributes

<CODE

LANG="..."

DIR=ltr|rtl

ID="..."

CLASS="...">characters...

</CODE>

Elements Allowed Within...

members of group

Allowed In Content Of...

Any element that permits members of group

Variations

This is usually rendered in a fixed-width font.

The LANG and DIR attributes are introduced with the

internationalization proposal.

All character definition elements are Level 2.



COL


Description

The COL element specifies column based defaults for table properties.

Minimum Attributes

<COL>

All Possible Attributes

<COL

LANG="..."

DIR=ltr|rtl

ID="..."

CLASS="..."

SPAN=nn

WIDTH="..."

ALIGN=left|center|right|justify|char

CHAR="."

CHAROFF="..."

VALIGN=top|middle|bottom|baseline>

Elements Allowed Within...

COL has no end element, therefore it has no content.

Allowed In Content Of...

Variations

The COL element is part of the new proposed standard

tables structure. It is not widely implemented in existing browsers.

The order of placement of a series of COL elements within the TABLE

content (or within a COLGROUP) is significant, and describes the columns

in the TABLE DIR presentation order, first to last.

SPAN is a positive integer that specifies how many columns this element

applies to, defaulting to one. SPAN=0 implies all columns from the

current column up to and including the last column.

WIDTH is a decimal number which specifies the width

of each column in the span.

The default units is pixels, but may be specified by a suffix on the number.

The standard defined units suffixes include:

pt=points,

pi=picas,

in=inches,

cm=centimeters,

mm=millimeters,

em=em units,

px=screen pixels.

In addition, the special suffix of an asterisk may be used

to specify a number to be used as a multiplier of a "standard" column width.

This is used to specify the widths of columns proportionately relative

to each other.

If a number does not accompany the asterisk it defaults to one.

Specifying WIDTH="0*" forces the column to its minimum width.

ALIGN and VALIGN define the alignment of text within a table cell.

If ALIGN=char, CHAR specifies the alignment character which defaults

to the decimal point for the current language. CHAROFF is a decimal

number that specifies the offset for the alignment character from the

beginning of the table cell in the DIR direction. Units may be specified

using the standard defined units suffixes plus the special suffix of the

percent sign indicating the percentage of offset within the cell from the

beginning of the cell.



COLGROUP


Description

The COLGROUP element defines a group of one or more columns

and specifies the defaults for all the columns in this group.

Minimum Attributes

<COLGROUP>

All Possible Attributes

<COLGROUP

LANG="..."

DIR=ltr|rtl

ALIGN=left|center|right|justify|char

ID="..."

CLASS="..."

CHAR="."

CHAROFF="..."

VALIGN=top|middle|bottom|baseline>characters...

</COLGROUP>

Elements Allowed Within...

Allowed In Content Of...

Variations

The COLGROUP element is part of the new proposed standard

tables structure. It is not widely implemented in existing browsers.

The end tag is optional and is inferred when a new COLGROUP is encountered

or the THEAD or TBODY element of TABLE.

The order of placement of a series of COLGROUP elements within the TABLE

content is significant, and describes the columns

in the TABLE DIR presentation order, first to last.

ALIGN and VALIGN define the alignment of text within a table cell.

If ALIGN=char, CHAR specifies the alignment character which defaults

to the decimal point for the current language. CHAROFF is a decimal

number that specifies the offset for the alignment character from the

beginning of the table cell in the DIR direction.

The default units is pixels, but may be specified by a suffix on the number.

The standard defined units suffixes include:

pt=points,

pi=picas,

in=inches,

cm=centimeters,

mm=millimeters,

em=em units,

px=screen pixels.

In addition, the special suffix of the percent sign may be used to

indicate the percentage of offset within the cell from the

beginning of the cell.



CREDIT


Description

The CREDIT element is used to name the source of a

block quotation or figure.

Minimum Attributes

<CREDIT>characters... </CREDIT>

All Possible Attributes

<CREDIT

LANG="..."

DIR=ltr|rtl

ID="..."

CLASS="...">characters... </CREDIT>

Elements Allowed Within...

-In progress, to be determined-

Allowed In Content Of...

Variations

The CREDIT element is proposed in Version 3.

Version 3 does not indicate the typical rendering for the contents

of the CREDIT element, nor whether that rendering should be different

or separated from the enclosing block quotation or figure.



DD


Description

The DD element identifies the separated multi-line

definition item in a DL definition list.

In a DL list a DD should always be preceded by at least one DT element.

Minimum Attributes

<DD>characters...

All Possible Attributes

<DD

LANG="..."

DIR=ltr|rtl>characters...

</DD>

Elements Allowed Within...

members of groups

Allowed In Content Of...

Variations

This is typically rendered as normal text, indented.

Most browsers assume that the contents of the element

ends when it encounters a <DT> or

another <DD> or the </DL>

element to end the list, and thus do not require the

ending tag.

The LANG and DIR attributes are introduced with the

internationalization proposal.

All list elements are Level 0.



DEL


Description

The DEL element

changes the character rendering of the

contents of the element to logically represent

deleted text, for instance in modifications in legal documents.

Minimum Attributes

<DEL>characters... </DEL>

All Possible Attributes

<DEL

LANG="..."

DIR=ltr|rtl

ID="..."

CLASS="...">characters...

</DEL>

Elements Allowed Within...

-In progress, to be determined-

Allowed In Content Of...

-In progress, to be determined-

Variations

The DEL element is a Version 3 proposed element.

While this will typically be rendered by strikethru characters,

the DEL element is preferred over using the S or STRIKE elements.

All character definition elements are Level 2.



DFN


Description

The DFN element changes the character rendering of the

contents of the element to logically represent a

defining instance of a term.

Minimum Attributes

<DFN>characters... </DFN>

All Possible Attributes

<DFN

LANG="..."

DIR=ltr|rtl

ID="..."

CLASS="...">characters...

</DFN>

Elements Allowed Within...

-In progress, to be determined-

Allowed In Content Of...

-In progress, to be determined-

Variations

The DFN element is not widely implemented, but

is usually rendered bold or bold italic.

It is a Version 3 proposed element and was in an earlier

Version 2 proposal.

The RFC 1866 describes it and recognizes it as existing practice

but does not include it in the standardized elements.



DIR


Description

The DIR element defines an unordered list consisting of a number of

single-line <LI> elements.

Minimum Attributes

<DIR></DIR>

All Possible Attributes

<DIR COMPACT

LANG="..."

DIR=ltr|rtl

ALIGN=center|left|right|justify>

</DIR>

Elements Allowed Within...

element

but not any member of group

Allowed In Content Of...

Any element that permits members of group

Variations

This list type is not commonly implemented, and

is often rendered identically to UL.

RFC 1866 specifies that the content of the LI element of the

DIR list is usually less than 20 characters in length.

These may be arranged in columns across the page,

each column typically as 24 characters wide.

Specifying <UL PLAIN WRAP=HORIZ> is proposed

in Version 3 as a replacement for the DIR element.

The exclusion in RFC 1866 of group block within DIR implies

(among other things) that DIR can contain no nested lists,

nor any paragraphs even though the LI element normally would allow this.

Some browsers do not enforce this exclusion.

The LANG and DIR attributes are introduced with the

internationalization proposal.

The internationalization proposal also includes

ALIGN=center|left|right|justify

All list elements are Level 0.



DIV


Description

The DIV element is proposed to be used

with the CLASS attribute to represent different kinds of containers,

e.g. chapter, section, abstract, or appendix.

Minimum Attributes

<DIV>characters...

</DIV>

All Possible Attributes

<DIV

LANG="..."

DIR=ltr|rtl

ALIGN=left|center|right|justify

ID="..."

CLASS="..."

NOWRAP

CLEAR=left|right|all|"...">characters...

</DIV>

Elements Allowed Within...

-In progress, to be determined-

Allowed In Content Of...

Variations

This is a proposed Version 3 element.

<DIV ALIGN=center> is the proposed replacement

for the non-standard element.

This is a Netscape 2.0 extension but it only recognizes

ALIGN=left|right|center.



DL


Description

The DL element defines a definition list. Each item in the

list is expected to have two parts, identified by the

<DT> and <DD> elements.

Minimum Attributes

<DL></DL>

All Possible Attributes

<DL

COMPACT

LANG="..."

DIR=ltr|rtl

ID="..."

CLASS="..."

CLEAR=left|right|all|"...">

</DL>

Elements Allowed Within...

Allowed In Content Of...

Any element that permits members of group

Variations

The COMPACT attribute suggests rendering the list in

a physically compact way, but is not implemented by many browsers.

RFC 1866 suggests that the attribute be used if the list items are

small and/or the entire list is large, and may cause the elimination

of blank lines between DT/DD pairs.

The LANG and DIR attributes are introduced with the

internationalization proposal.

Version 3 proposes the CLEAR attribute.

To obtain a specific look, it has been the practice to construct

a DL with DD elements but empty or missing DT elements.

Missing DT elements violates the standard.

Version 3 proposes a new element as the

preferred alternative to achieve the effect desired.

All list elements are Level 0.



Дополнительные сведения


В случае, если cookie принимает новое значение при имеющемся уже

в броузере cookie с совпадающими NAME, domain и path, старое значение

затирается новым. В остальных случаях новые cookies добавляются.

Использование expires не гарантирует сохранность cookie в течение

заданного периода времени, поскольку клиент (броузер) может удалить

запись вследствие нехватки выделенного места или каких-либо других

лимитов.

Клиент (броузер) имеет следующие ограничения:

всего может храниться до 300 значений cookies

каждый cookie не может превышать 4Кбайт

с одного сервера или домена может храниться до 20 значений

cookie

Если ограничение 300 или 20 превышается, то удаляется первая по

времени запись. При превышении 4К - корректность такого cookie

страдает - отрезается кусок записи (с начала этой записи) равный

превышению.

В случае кэширования документов, например, proxy-сервером, поле

Set-cookie HTTP заголовка никогда не кэшируется.

Если proxy-сервер принимает ответ, содержащий поле Set-cookie

в заголовке, предполагается, что поле таки доходит до клиента

вне зависимости от статуса 304 (Not Modified) или 200 (OK).

Соответственно, если клиентский запрос содержит в заголовке Cookie,

то он должен дойти до сервера, даже если установлен If-modified-since.

Я полагаю, что все что сказано про proxy не относится к случаю, когда cookie устанавливается жестко с помощью META-тагов.



Допустимое использование


Текст перевода и его отдельные части могут свободно распространяться

и быть использованы организациями и отдельными лицами в целях создания

и развития информационных систем и средств обработки информации. Не

допускается коммерческое использование текста и его отдельных частей, а

также распространение его в измененном виде.



DT


Description

The DT element identifies the separated term item in a DL definition list.

Multiple DT elements may exist prior to a single DD element.

In a DL list a DD should always be preceded by at least one DT element.

Minimum Attributes

<DT>characters...

All Possible Attributes

<DT

LANG="..."

DIR=ltr|rtl>characters...

</DT>

Elements Allowed Within...

members of group

Allowed In Content Of...

Variations

This is typically rendered in a bold font, but not indented.

Most browsers assume that the contents of the element

ends when it encounters a <DD> or

another <DT> or the </DL>

element to end the list, and thus do not require the

ending tag.

The LANG and DIR attributes are introduced with the

internationalization proposal.

All list elements are Level 0.



Element Groups


To shorten the lists in each element to describe the

"Elements Allowed Within..." and "Allowed In Content Of..."

various elements are defined by RFC 1866 as members of a group.

These group names are used throughout the RFC 1866.

Since group names can be defined to contain other group names,

this mechanism makes nesting and recursion more obvious.

Note that these element groups only deal with entities defined in RFC 1866

and do not include any of the entities in proposed extensions.

block

Contains the groups

,

,

and the entities

and


The tables proposal defines the element

as a member of this group

block.forms

Contains the entities

,

and

body.content

Is allowed to contain the groups

,

,

and the entities

and

It is recommended that it contain only the groups

,

and the entities

,

and

This recommended change in the members of this group means that

all text within a body should be enclosed in some kind of block.

This means that

<h1>Heading<h1>

<p>Text ...

is recommended over

<h1>Heading<h1>

Text ...

font

Contains the entities

,

and

heading

Contains the entities

,

,

,

,

and

list

Contains the entities

,

,

and

Note that it does not contain

which is identified separately.

phrase

Contains the entities

,

,

,

,

,

and

preformated

Is allowed to contain the entities

,

and

The last two entities are deprecated

and this group should contain only the entity

text

Contains the groups

and

and the entities

,

and

and parsed character data.

Parsed character data is any valid character data after the data

has been parsed and all

entities have been replaced with their character data.

The internationalization proposal also includes in group text

the entities

,

,

,

,



EM


Description

The EM element changes the character rendering of the

contents of the element to logically emphasize the text.

Minimum Attributes

<EM>characters...

</EM>

All Possible Attributes

<EM

LANG="..."

DIR=ltr|rtl

ID="..."

CLASS="...">characters...

</EM>

Elements Allowed Within...

members of group

Allowed In Content Of...

Any element that permits members of group

Variations

Usually rendered in italics.

RFC 1866 states that <EM> content must be rendered as distinct

from <STRONG> content.

The LANG and DIR attributes are introduced with the

internationalization proposal.

All character definition elements are Level 2.



EMBED


Description

The EMBED element defines a container that allows the insertion

of arbitrary objects directly into an HTML page. Embedded objects

are supported by application-specific plug-ins. EMBED is defined

to allow arbitrary attributes.

Minimum Attributes

<EMBED SRC="...">

All Possible Attributes

<EMBED

SRC="..."

HEIGHT="..."

WIDTH="..."

attribute_1="..."

attribute_2="..."

...>characters...

</EMBED>

Elements Allowed Within...

Allowed In Content Of...

-In progress, to be determined-

Variations

The EMBED element is a Netscape 2.0 extension.

Netscape gives as examples of plug-in applications:

WebFX by Paper Software for viewing VRML

(Virtual Reality Modeling Language) worlds,

Adobe Acrobat for PDF documents, and Macromedia Director and Apple QuickTime

for multimedia.

Netscape's examples do not include the ending element,

but their documentation does not specify what would imply

the end of the EMBED content if the ending element is absent.

The concept of arbitrary undefined attributes violates the underlying

SGML standard of HTML. Change is expected in this element.

See also the element.

The Netscape documentation does not currently define the units for

HEIGHT and WIDTH but examples would imply that they are pixels.

The object's image will be scaled to fit the specified height/width.

Embedded plug-in applications may be activated by double-clicking

their image.



FIG


Description

The FIG element is an advanced form of the

element to define an image, with optional

overlays, text elements and "hotzones", to be inserted

within a document.

The structure of the contents of the FIG element expects

a series of optional overlay images defined by OVERLAY elements,

followed by an optional CAPTION element,

followed by text to be presented as an alternative to the image(s)

and which may contain normal text elements as well as

hypertext links defined by A elements with

SHAPE attributes to identify "hotzones" on the image,

finally completed by an optional CREDIT element.

Minimum Attributes

<FIG SRC="..."></FIG>

All Possible Attributes

<FIG SRC="..."

LANG="..."

DIR=ltr|rtl

ID="..."

CLASS="..."

CLEAR=left|right|all|"..."

NOFLOW

MD="..."

ALIGN=left|right|center|justify|bleedleft|bleedright

WIDTH=value

HEIGHT=value

UNITS="..."

IMAGEMAP="..."></FIG>

Elements Allowed Within...


-In progress, to be determined- (ed: all normal markup elements?)

Allowed In Content Of...

-In progress, to be determined-

Variations

The FIG element is proposed in Version 3 as a sophisticated

alternative to the IMG element, especially to enhance the capabilities

of the ALT text for non-graphical presentations of HTML documents,

as well as a way to accomplish the common use of the ISMAP attribute

of the IMG element without the need for a responding cgi-bin program.



FN


Description

The FN element logically identifies text to be presented

as a footnote. The reference location for the footnote is expected

to be an A element whose HREF attribute references the ID of the

FN element.

Minimum Attributes

<FN ID="...">characters... </FN>

All Possible Attributes

<FN

LANG="..."

DIR=ltr|rtl

ID="..."

CLASS="...">characters... </FN>

Elements Allowed Within...

-In progress, to be determined-

Allowed In Content Of...

-In progress, to be determined-

Variations

The FN element is a Version 3 proposed element.

Version 3 specifies that when practical, the browser should

render the FN element as pop-up notes.

Version 3 does not specify an expected rendering when the footnote

text is simply displayed where it occurs in the document.

However, Version 3 does state that the FN element does not imply

text separation. Therefore, common practice expects that the

contents of the FN element would begin with a markup element

which produces separation, e.g. the P element.



FONT


Description

The FONT element changes the font size of the following characters

to one of the seven defined sizes, or plus or minus from the document

size.

Minimum Attributes

<FONT SIZE=[+|-]1|2|3|4|5|6|7>

All Possible Attributes

<FONT

SIZE=[+|-]1|2|3|4|5|6|7

COLOR="..."

FACE="...">

Elements Allowed Within...

-In progress, to be determined-

Allowed In Content Of...

-In progress, to be determined-

Variations

The FONT element with the SIZE attribute is a Netscape 1.1

and MS Internet 2.0 extension.

Netscape 2.0 and MS Internet Explorer 2.0 added the COLOR attribute.

Netscape requires an "#rrggbb" number, while

Internet Explorer also accepts the following color names:

Black, Maroon, Green, Olive, Navy, Purple, Teal, Gray, Silver, Red, Lime,

Yellow, Blue, Fuchsia, Aqua, White.

The FACE attribute is a MS Internet Explorer 2.0 extension to specify

a font style, but the permitted values are not defined.



FORM


Description

The FORM element creates a fill-out form.

The browser permits the user to enter information in the fields of

the form and sends this information to a cgi-bin script on a server

identified as a by the ACTION attribute.

METHOD=GET (the default) appends the input information to the

ACTION URL which on most receiving systems becomes

the value of the environment variable QUERY_STRING.

METHOD=POST (the preferred) sends the input information in a data body

which is available on stdin with the data length set

in the environment variable CONTENT_LENGTH.

Form data is a stream of name=value pairs

separated by the & character.

Each name=value pair is URL encoded,

i.e. spaces are changed into the plus character and some characters

are encoded into hexadecimal.

At least one of the following is expected inside the FORM

contents: INPUT, SELECT, TEXTAREA.

Minimum Attributes

<FORM></FORM>

All Possible Attributes

<FORM ACTION="..."

METHOD=GET|POST

ENCTYPE="..."

LANG="..."

DIR=ltr|rtl

ACCEPT-CHARSET="..."

SCRIPT="...">

</FORM>

Elements Allowed Within...

members of group

and elements

but not element

Allowed In Content Of...

Any element that permits members of group

Variations

The original definition of FORM only defined the default value of

application/x-www-form-urlencoded

for the ENCTYPE attribute.

RFC 1867 adds the value of multipart/form-data

for this attribute to permit a FORM to upload one or more files

in addition to the FORM data. METHOD=POST is required with

this value of ENCTYPE.

This file upload extension is implemented in Netscape 2.0.

Most current browsers only handle ACTION for the

http: access type, but proposals for handling the

mailto: access type are being discussed.

The LANG, DIR, and ACCEPT-CHARSET attributes are introduced with the

internationalization proposal.

The ACCEPT-CHARSET attribute is to provide a hint as to the

character set or sets that the receiving URL is prepared to handle.

Version 3 proposes the SCRIPT attribute to specify a URL which

contains a limited syntax script to be downloaded to the browser

for execution to preprocess the FORM output before sending it

to the ACTION destination.

This SCRIPT proposal may change as part of the new proposals

concerning APPLET and EMBED.

All elements concerning FORM are Level 2.