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.