В некоторых случаях бывает необходимо, чтобы пользовательские агенты (ПА) отображали содержимое не из дерева документа. Известный пример - нумерованный список: автор не хочет, чтобы нумерация выводилась явным образом, он или она хотят, чтобы ПА генерировал нумерацию автоматически. Также автор может пожелать, чтобы ПА вставлял слово "Figure" перед заглавием или фигурой или "Chapter 7" в начале 7 главы. В особенности для аудио и брайль-носителей, ПА должны иметь возможность вставить эти строки.
В CSS2 содержимое может генерироваться с помощью различных механизмов:
Ниже описаны механизмы, ассоциированные со свойством
Авторы специфицируют стиль и размещение генерируемого содержимого с помощью
Следующее правило вставляет строку "Note: " перед содержимым каждого элемента P, чей атрибут "class" имеет значение "note":
P.note:before { content: "Note: " }
Форматирующие объекты (напр., боксы), генерируемые элементом, включают
P.note:before { content: "Note: " }
P.note { border: solid green }
вызовет появление сплошной зелёной рамки вокруг параграфа, включая начальную строку.
Следующие правила вставляют открывающий знак кавычек перед каждым элементом Q. Цвет знака кавычки - красный, но шрифт будет тот же, что и шрифт остальной части элемента Q:
Q:before {
content: open-quote;
color: red
}
В объявлениях
Так, например, поскольку начальное значение свойства 'display' - 'inline', кавычка в предыдущем примере вставляется как инлайн-бокс (т.е. на той же самой строке, что и содержимое начального текста элемента). В следующем примере свойство 'display' явно устанавливается в 'block', так что вставленный текст становится блоком:
BODY:after {
content: "The End";
display: block;
margin-top: 2em;
text-align: center;
}
Обратите внимание, что пользователи аудио-ПА услышат слова "The End" после вывода оставшейся части содержимого BODY.
ПА обязаны игнорировать следующие свойства при наличии
Если
Если 'display' имеет другие значения,
Если
Если 'display' имеет другие значения,
Значение: [ <string> |
Начальное: пустая строка
Применяется: к псевдоэлементам
Наследуется: нет
Процентное: N/A
Носитель: все
Это свойство используется с псевдоэлементами
Значения имеют следующий смысл:
<string>
Содержимое текста (см. раздел строки).
Значением является URI, обозначающий внешний ресурс. Если ПА не может поддержать данный ресурс (в связи с типами носителя), он может игнорировать данный ресурс.
open-quote и close-quote
Эти значения замещаются подходящей строкой свойства
no-open-quote и
Ничего не вставляют (пустая строка), но увеличивают (уменьшают) уровень вложения кавычек.
Эта функция возвращает строковое значение X для
Свойство 'display' регулирует, куда помещается содержимое, в блок, инлайн- или маркированный бокс.
Авторы должны поместить объявление
Следующее правило вызывает проигрывание звукового файла в конце отрезка с кавычками (см. дополнительные механизмы в разделе "звуковые таблицы стилей"):
@media aural {
BLOCKQUOTE:after { content: url("beautiful-music.wav") }
}
Следующее правило вставляет текст атрибута "alt" HTML перед изображением. Если изображение не выводится, пользователь увидит текст "alt".
IMG:before { content: attr(alt)}
Авторы могут включать новые строки в
H1:before {
display: block;
text-align: center;
content: "chapter\A hoofdstuk\A chapitre"
}
Могут быть следующие ситуации:
Это заголовок 'run-in' с
Когда таблица стилей:
H3 { display: run-in }
H3:after { content: ": " }
P:before { content: "... " }
применяется к такому документу-источнику:
<H3>Centaurs</H3> <P>have hoofs <P>have a tail
визуальное форматирование будет таким:
Centaurs: ... have hoofs ... have a tail
В CSS2 авторы могут специфицировать, в чувствительной к стилю и контекстно-зависимой манере, как ПА должны отображать знаки кавычек. Свойство
Значение: [<string> <string>]+ | none | inherit
Начальное: зависит от ПА
Применяется: ко всем элементам
Наследуется: да
Процентное: N/A
Носитель: визуальный
Это свойство специфицирует знаки кавычек для любого количества внедрённых закавычиваний. Значения имеют следующий смысл:
none
Значения
[<string> <string>]+
Значения для
Применение следующей таблицы стилей:
/* Специфицируются пары кавычек двух уровней для двух языков */
Q:lang(en) { quotes: '"' '"' "'" "'" }
Q:lang(no) { quotes: """ """ "<" ">" }
/* Вставляются кавычки до и после содержимого элемента Q */
Q:before { content: open-quote }
Q:after { content: close-quote }
к данному фрагменту HTML:
<HTML lang="en">
<HEAD>
<TITLE>Quotes</TITLE>
</HEAD>
<BODY>
<P><Q>Quote me!</Q>
</BODY>
</HTML>
позволит ПАгенту выдать:
"Quote me!"
а данный фрагмент HTML:
<HTML lang="no">
<HEAD>
<TITLE>Quotes</TITLE>
</HEAD>
<BODY>
<P><Q>Trondere grater nar <Q>Vinsjan pa kaia</Q> blir deklamert.</Q>
</BODY>
</HTML>
выдаст:
"Trondere grater nar <Vinsjan pa kaia> blir deklamert."
| Ориентировочное представление | код ISO 10646 (hex) | Описание |
|---|---|---|
| " | 0022 | КАВЫЧКА [двойная кавычка ASCII] |
| ' | 0027 | АПОСТРОФ [одиночная кавычка ASCII] |
| < | 2039 | ОДИНОЧНАЯ ЛЕВАЯ УГЛОВАЯ КАВЫЧКА |
| > | 203A | ОДИНОЧНАЯ ПРАВАЯ УГЛОВАЯ КАВЫЧКА |
| " | 00AB | ЛЕВАЯ ДВОЙНАЯ УГЛОВАЯ КАВЫЧКА |
| " | 00BB | ПРАВАЯ ДВОЙНАЯ УГЛОВАЯ КАВЫЧКА |
| ` | 2018 | ЛЕВАЯ ОДИНОЧНАЯ КАВЫЧКА [single high-6] |
| ' | 2019 | ПРАВАЯ ОДИНОЧНАЯ КАВЫЧКА [single high-9] |
| `` | 201C | ЛЕВАЯ ДВОЙНАЯ КАВЫЧКА [double high-6] |
| '' | 201D | ПРАВАЯ ДВОЙНАЯ КАВЫЧКА [double high-9] |
| ,, | 201E | ДВОЙНАЯ КАВЫЧКА LOW-9 [double low-9] |
Знаки кавычек вставляются в соответствующих местах документа значениями
Обратите внимание, что глубина вложения кавычек не зависит от вложения документа-источника или структуры форматирования.
Некоторые
Следующая таблица стилей помещает знаки открывающей кавычки в каждом параграфе в BLOCKQUOTE и вставляет одиночную закрывающую кавычку в конце:
BLOCKQUOTE P:before { content: open-quote }
BLOCKQUOTE P:after { content: no-close-quote }
BLOCKQUOTE P.last:after { content: close-quote }
Это относится к последнему параграфу, маркированному классом "last", поскольку нет селекторов, которые могут совпадать с последним потомком элемента.
Для симметрии имеется также ключевое слово
Французский внутри английского:
The device of the order of the garter is "Honi soit qui mal y pense."
Английский внутри французского:
Il disait: " Il faut mettre l'action en < fast forward >."
Таблица стилей типа следующей установит свойство 'quotes' таким образом, что '
Это правила для документов, содержащих только английский, французский или оба этих языка. Одно правило понадобится для каждого дополнительного языка.
Обратите внимание на использование комбинатора-потомка (">") для установки кавычек в элементы на базе языка окружающего текста:
[LANG|=fr] > * { quotes: """ """ "\2039" "\203A" }
[LANG|=en] > * { quotes: "\201C" "\201D" "\2018" "\2019" }
Знаки кавычек для английского показаны здесь в такой форме, что большинство людей будет способно их напечатать.
Если Вы можете печатать их напрямую, то они будут выглядеть примерно так:
[LANG|=fr] > * { quotes: """ """ "<" ">" }
[LANG|=en] > * { quotes: """ """ "'" "'" }
Автоматическая нумерация в CSS2 контролируется двумя свойствами,
Значение: [ <identifier> <integer>? ]+ | none | inherit
Начальное: none
Применяется: ко всем элементам
Наследуется: нет
Процентное: N/A
Носитель: все
Значение: [ <identifier> <integer>? ]+ | none | inherit
Начальное: none
Применяется: ко всем элементам
Наследуется: нет
Процентное: N/A
Носитель: все
Свойство
Свойство
Если
Здесь показан способ нумерации глав и разделов: "Chapter 1", "1.1", "1.2" и т.д.:
H1:before {
content: "Chapter " counter(chapter) ". ";
counter-increment: chapter; /* Добавляет 1 к главе */
counter-reset: section; /* Устанавливает раздел в 0 */
}
H2:before {
content: counter(chapter) "." counter(section) " ";
counter-increment: section;
}
Если элемент увеличивает/сбрасывает счётчик и использует его (в свойстве
Если элемент и увеличивает, и сбрасывает счётчик, то счётчик сначала сбрасывается, а затем увеличивается.
Свойство
H1 { counter-reset: section -1 }
H1 { counter-reset: imagenum 99 }
сбросит только 'imagenum'. Чтобы сбросить оба счётчика, их нужно специфицировать вместе:
H1 { counter-reset: section -1 imagenum 99 }
Так, следующего достаточно для нумерации вложенных элементов списка. Результат очень похож на применение установки 'display:
OL { counter-reset: item }
LI { display: block }
LI:before { content: counter(item) ". "; counter-increment: item }
Самовложение базируется на том принципе, что каждый элемент, имеющий
В предыдущем примере OL создаст счётчик, и все потомки OL будут ссылаться на этот счётчик.
Если мы обозначим с помощью item[n] n-ый экземпляр счётчика "item" и "(" и ")" - начало и конец области видимости,
то следующий фрагмент HTML будет использовать указанные счётчики. (Мы используем ту же таблицу стилей, что и в предыдущем примере).
<OL> <!-- (set item[0] to 0 -->
<LI>item <!-- increment item[0] (= 1) -->
<LI>item <!-- increment item[0] (= 2) -->
<OL> <!-- (set item[1] to 0 -->
<LI>item <!-- increment item[1] (= 1) -->
<LI>item <!-- increment item[1] (= 2) -->
<LI>item <!-- increment item[1] (= 3) -->
<OL> <!-- (set item[2] to 0 -->
<LI>item <!-- increment item[2] (= 1) -->
</OL> <!-- ) -->
<OL> <!-- (set item[3] to 0 -->
<LI> <!-- increment item[3] (= 1) -->
</OL> <!-- ) -->
<LI>item <!-- increment item[1] (= 4) -->
</OL> <!-- ) -->
<LI>item <!-- increment item[0] (= 3) -->
<LI>item <!-- increment item[0] (= 4) -->
</OL> <!-- ) -->
<OL> <!-- (reset item[4] to 0 -->
<LI>item <!-- increment item[4] (= 1) -->
<LI>item <!-- increment item[4] (= 2) -->
</OL> <!-- ) -->
Функция 'counters()' генерирует строку, составленную из значений всех
Следующая таблица стилей нумерует вложенные элементы списка как "1", "1.1", "1.1.1" и т.д.
OL { counter-reset: item }
LI { display: block }
LI:before { content: counters(item, "."); counter-increment: item }
По умолчанию
counter(name)
для таблицы стилей по умолчанию, или:
counter(name, 'list-style-type')
Допустимы все стили, включая 'disc', '
H1:before { content: counter(chno, upper-latin) ". " }
H2:before { content: counter(section, upper-roman) " - " }
BLOCKQUOTE:after { content: " [" counter(bq, hebrew) "]" }
DIV.note:before { content: counter(notecntr, disc) " " }
P:before { content: counter(p, none) }
Элемент, который не отображается ('display' установлено в 'none'), не может установить или сбросить счётчик.
С помощью следующей таблицы стилей элементы H2 с классом "secret" не увеличивают 'count2'.
H2.secret {counter-increment: count2; display: none}
В то же время, элементы с 'visibility', установленной в 'hidden', увеличивают
Большинство элементов уровня блока в CSS генерируют один
В этом разделе мы обсуждаем два механизма CSS, которые заставляют элемент генерировать два бокса: один
Самым общим из этих двух механизмов является новый для CSS2 механизм, называемый
Например, следующий пример иллюстрирует, как
Эта программа HTML и таблица стилей:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
<TITLE>Создание списка с маркёрами</TITLE>
<STYLE type="text/css">
LI:before {
display: marker;
content: counter(mycounter, lower-roman) ".";
counter-increment: mycounter;
}
</STYLE>
</HEAD>
<BODY>
<OL>
<LI> Это первый элемент списка.
<LI> Это второй элемент списка.
<LI> Это третий элемент списка.
</OL>
</BODY>
</HTML>
должны дать на выходе примерно следующее:
i. Это первый элемент списка. ii. Это второй элемент списка. iii. Это третий элемент списка.
С помощью
Боксы маркёра имеют заполнение и рамку, но не имеют полей.
Для псевдоэлемента
Высота бокса маркёра задаётся в свойстве 'line-height'. Бокс маркёра
Вертикальное выравнивание бокса маркёра внутри его
Если значение свойства 'width' - 'auto', то ширина содержимого бокса маркёра является шириной содержимого, иначе - это значение 'width'. Для значений 'width' меньших, чем ширина содержимого, свойство 'overflow' специфицирует поведение при переполнении. Боксы маркёра могут перекрывать основные боксы. Для значений 'width' больших, чем ширина содержимого, свойство 'text-align' определяет горизонтальное выравнивание содержимого в боксе маркёра.
Свойство
Примечание. Если маркёр всплывает вправо от поплавка в содержимом, отформатированном слева направо, то основной бокс будет всплывать вниз от правой стороны поплавка, но боксы маркёра будут появляться слева от поплавка. Поскольку левый край рамки основного бокса расположен слева от поплавка (см. описание поплавков), а бокс маркёра расположен вне
Если свойство 'display' имеет значение 'marker' для содержимого, генерируемого элементом с '
В следующем примере содержимое центрируется в боксе маркёра фиксированной ширины. Этот документ:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
<TITLE>Выравнивание содержимого в боксе маркёра</TITLE>
<STYLE type="text/css">
LI:before {
display: marker;
content: "(" counter(counter) ")";
counter-increment: counter;
width: 6em;
text-align: center;
}
</STYLE>
</HEAD>
<BODY>
<OL>
<LI> Это первый элемент списка.
<LI> Это второй элемент списка.
<LI> Это третий элемент списка.
</OL>
</BODY>
</HTML>
должен дать примерно такой вывод:
(1) Это первый
элемент списка.
(2) Это второй
элемент списка.
(3) Это третий
элемент списка.
В следующем примере создаются
Этот документ:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
<TITLE>Маркёры до и после элементов списка</TITLE>
<STYLE type="text/css">
@media screen, print {
LI:before {
display: marker;
content: url("smiley.gif");
LI:after {
display: marker;
content: url("sad.gif");
}
}
</STYLE>
</HEAD>
<BODY>
<UL>
<LI>первый элемент списка появляется первым
<LI>второй элемент списка появляется вторым
</UL>
</BODY>
</HTML>
должен дать примерно такой вывод (здесь используется рисунок ascii вместо изображения gif улыбки):
:-) первый элемент списка
появляется первым :-(
:-) второй элемент списка
появляется вторым :-(
В следующем примере
Данный документ:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
<TITLE>Маркёры для создания нумерованных примечаний 4</TITLE>
<STYLE type="text/css">
P { margin-left: 12 em; }
@media screen, print {
P.Note:before {
display: marker;
content: url("note.gif")
"Примечание " counter(note-counter) ":";
counter-increment: note-counter;
text-align: left;
width: 10em;
}
}
</STYLE>
</HEAD>
<BODY>
<P>Это первый параграф данного документа.</P>
<P CLASS="Note">Это очень короткий документ.</P>
<P>Это конец.</P>
</BODY>
</HTML>
должен дать примерно такой вывод:
Это первый параграф
данного документа.
Примечание 1: Это очень короткий
документ.
Это конец.
Значение:
Начальное: auto
Применяется: к элементам с 'display: marker'
Наследуется: нет
Процентное: N/A
Носитель: визуальный
Это свойство специфицирует расстояние между ближайшим
Значения размеров могут быть отрицательными, но могут существовать ограничения, в зависимости от специфики реализации.
В следующем примере показано, как
Эта программа HTML и таблица стилей:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Пример маркёров 5</TITLE>
<STYLE type="text/css">
P { margin-left: 8em } /* Создаёт пространство для счётчиков */
LI:before {
display: marker;
marker-offset: 3em;
content: counter(mycounter, lower-roman) ".";
counter-increment: mycounter;
}
</STYLE>
</HEAD>
<BODY>
<P> Это большой предшествующий параграф ...
<OL>
<LI> Это первый элемент списка.
<LI> Это второй элемент списка.
<LI> Это третий элемент списка.
</OL>
<P> Это большой последующий параграф ...
</BODY>
</HTML>
должен дать примерно такой вывод:
Это большой предшествующий
параграф ...
i. Это первый элемент списка.
ii. Это второй элемент списка.
iii. Это третий элемент списка.
Это большой последующий
параграф ...
Следовательно, если маркёр M (созданный в 'display: marker') используется с элементом списка, созданным в
Вместе со
Значение: disc |
Начальное: disc
Применяется: к элементам с '
Наследуется: да
Процентное: N/A
Носитель: визуальный
Это свойство специфицирует вид маркёра элемента списка, если
Системы нумерации специфицируются с помощью:
Десятеричных чисел, начинающихся с 1.
Десятеричных чисел, дополненных начальными нулями (например, 01, 02, 03, ..., 98, 99).
Римских цифр в нижнем регистре (i, ii, iii, iv, v и т.д.).
Римских цифр в верхнем регистре (I, II, III, IV, V и т.д.).
Традиционной еврейской нумерации.
Традиционной грузинской нумерации (an,
Традиционной армянской нумерации.
Простых идеографических чисел.
a, i, u, e, o, ka, ki, ...
A, I, U, E, O, KA, KI, ...
i, ro, ha, ni, ho, he, to, ...
I, RO, HA, NI, HO, HE, TO, ...
ПА, не распознающий системы нумерации, должен использовать '
Алфавитные системы специфицируются с помощью:
Букв ascii нижнего регистра (a, b, c, ... z).
Букв ascii верхнего регистра (A, B, C, ... Z).
Классических греческих букв нижнего регистра альфа, бета, гамма, ... (?, ?, ?, ...)
Эта спецификация не определяет то, как происходит перенос алфавитной системы в конце алфавита. Например, после 26 элементов списка представление
Например, следующий документ HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
<TITLE>Нумерация латинскими буквами нижнего регистра</TITLE>
<STYLE type="text/css">
OL { list-style-type: lower-roman }
</STYLE>
</HEAD>
<BODY>
<OL>
<LI> Это первый элемент списка.
<LI> Это второй элемент списка.
<LI> Это третий элемент списка.
</OL>
</BODY>
</HTML>
может дать на выходе:
i Это первый элемент списка. ii Это второй элемент списка. iii Это третий элемент списка.
Обратите внимание, что выравнивание маркёров списка (здесь - по правому краю) зависит от ПА.
'list-style-image'
Значение:
Начальное: none
Применяется: к элементам с '
Наследуется: да
Процентное: N/A
Носитель: визуальный
Это свойство определяет изображение, которое будет использоваться как маркёр элемента списка. Если изображение доступно, оно замещает маркёр, установленный '
В следующем примере устанавливается маркёр - изображение "ellipse.png" - в начале каждого элемента списка .
UL { list-style-image: url("http://png.com/ellipse.png") }
Значение: inside | outside | inherit
Начальное: outside
Применяется: к элементам с '
Наследуется: да
Процентное: N/A
Носитель: визуальный
Это свойство специфицирует позицию бокса маркёра в
outside
Бокс маркёра находится вне
inside
Бокс маркёра это первый инлайн-бокс в боксе основного блока, после которого всплывает содержимое элемента.
Например:
<HTML>
<HEAD>
<TITLE>Сравнение позиций inside/outside</TITLE>
<STYLE type="text/css">
UL { list-style: outside }
UL.compact { list-style: inside }
</STYLE>
</HEAD>
<BODY>
<UL>
<LI>first list item comes first
<LI>second list item comes second
</UL>
<UL class="compact">
<LI>first list item comes first
<LI>second list item comes second
</UL>
</BODY>
</HTML>
Этот пример отображается так:

В тексте справа-налево
Значение: [
Начальное: не определено для сокращённых свойств
Применяется: к элементам с '
Наследуется: да
Процентное: N/A
Носитель: визуальный
Свойство
UL { list-style: upper-roman inside } /* Какой-либо UL */
UL > UL { list-style: circle outside } /* UL - потомок UL */
Хотя авторы могут специфицировать информацию о
OL.alpha LI { list-style: lower-alpha } /* LI - потомок OL */
OL.alpha > LI { list-style: lower-alpha } /* LI-наследник OL */
Авторы, использующие только селекторы-потомки, могут не получить тот результат, на который рассчитывали. Рассмотрим следующие правила:
<HTML>
<HEAD>
<TITLE>ПРЕДУПРЕЖДЕНИЕ: Непредсказуемый результат из-за каскадирования</TITLE>
<STYLE type="text/css">
OL.alpha LI { list-style: lower-alpha }
UL LI { list-style: disc }
</STYLE>
</HEAD>
<BODY>
<OL class="alpha">
<LI>level 1
<UL>
<LI>level 2
</UL>
</OL>
</BODY>
</HTML>
Ожидается, что элементы списка уровня 1 будут маркированы лэйблами 'lower-alpha', а элементы уровня 2 - лэйблами 'disc'. Однако порядок каскадирования вызовет маскирование второго правила первым (которое содержит специфическую информацию класса). В следующих правилах для решения проблемы используется
OL.alpha > LI { list-style: lower-alpha }
UL LI { list-style: disc }
Другим решением может быть спецификация информации
OL.alpha { list-style: lower-alpha }
UL { list-style: disc }
При наследовании значения
Значение URI может комбинироваться с любым другим значением, как здесь:
UL { list-style: url("http://png.com/ellipse.png") disc }
В данном примере 'disc' будет использоваться, если изображение недоступно.
Значение 'none' свойства 'list-style' устанавливает '
UL { list-style: none }
В результате - никакие
В некоторых случаях бывает необходимо, чтобы пользовательские агенты (ПА) отображали содержимое не из дерева документа. Известный пример - нумерованный список: автор не хочет, чтобы нумерация выводилась явным образом, он или она хотят, чтобы ПА генерировал нумерацию автоматически. Также автор может пожелать, чтобы ПА вставлял слово "Figure" перед заглавием или фигурой или "Chapter 7" в начале 7 главы. В особенности для аудио и брайль-носителей, ПА должны иметь возможность вставить эти строки.
В CSS2 содержимое может генерироваться с помощью различных механизмов:
Ниже описаны механизмы, ассоциированные со свойством
Авторы специфицируют стиль и размещение генерируемого содержимого с помощью
Следующее правило вставляет строку "Note: " перед содержимым каждого элемента P, чей атрибут "class" имеет значение "note":
P.note:before { content: "Note: " }
Форматирующие объекты (напр., боксы), генерируемые элементом, включают
P.note:before { content: "Note: " }
P.note { border: solid green }
вызовет появление сплошной зелёной рамки вокруг параграфа, включая начальную строку.
Следующие правила вставляют открывающий знак кавычек перед каждым элементом Q. Цвет знака кавычки - красный, но шрифт будет тот же, что и шрифт остальной части элемента Q:
Q:before {
content: open-quote;
color: red
}
В объявлениях
Так, например, поскольку начальное значение свойства 'display' - 'inline', кавычка в предыдущем примере вставляется как инлайн-бокс (т.е. на той же самой строке, что и содержимое начального текста элемента). В следующем примере свойство 'display' явно устанавливается в 'block', так что вставленный текст становится блоком:
BODY:after {
content: "The End";
display: block;
margin-top: 2em;
text-align: center;
}
Обратите внимание, что пользователи аудио-ПА услышат слова "The End" после вывода оставшейся части содержимого BODY.
ПА обязаны игнорировать следующие свойства при наличии
Если
Если 'display' имеет другие значения,
Если
Если 'display' имеет другие значения,
Значение: [ <string> |
Начальное: пустая строка
Применяется: к псевдоэлементам
Наследуется: нет
Процентное: N/A
Носитель: все
Это свойство используется с псевдоэлементами
Значения имеют следующий смысл:
<string>
Содержимое текста (см. раздел строки).
Значением является URI, обозначающий внешний ресурс. Если ПА не может поддержать данный ресурс (в связи с типами носителя), он может игнорировать данный ресурс.
open-quote и close-quote
Эти значения замещаются подходящей строкой свойства
no-open-quote и
Ничего не вставляют (пустая строка), но увеличивают (уменьшают) уровень вложения кавычек.
Эта функция возвращает строковое значение X для
Свойство 'display' регулирует, куда помещается содержимое, в блок, инлайн- или маркированный бокс.
Авторы должны поместить объявление
Следующее правило вызывает проигрывание звукового файла в конце отрезка с кавычками (см. дополнительные механизмы в разделе "звуковые таблицы стилей"):
@media aural {
BLOCKQUOTE:after { content: url("beautiful-music.wav") }
}
Следующее правило вставляет текст атрибута "alt" HTML перед изображением. Если изображение не выводится, пользователь увидит текст "alt".
IMG:before { content: attr(alt)}
Авторы могут включать новые строки в
H1:before {
display: block;
text-align: center;
content: "chapter\A hoofdstuk\A chapitre"
}
Могут быть следующие ситуации:
Это заголовок 'run-in' с
Когда таблица стилей:
H3 { display: run-in }
H3:after { content: ": " }
P:before { content: "... " }
применяется к такому документу-источнику:
<H3>Centaurs</H3> <P>have hoofs <P>have a tail
визуальное форматирование будет таким:
Centaurs: ... have hoofs ... have a tail
В CSS2 авторы могут специфицировать, в чувствительной к стилю и контекстно-зависимой манере, как ПА должны отображать знаки кавычек. Свойство
Значение: [<string> <string>]+ | none | inherit
Начальное: зависит от ПА
Применяется: ко всем элементам
Наследуется: да
Процентное: N/A
Носитель: визуальный
Это свойство специфицирует знаки кавычек для любого количества внедрённых закавычиваний. Значения имеют следующий смысл:
none
Значения
[<string> <string>]+
Значения для
Применение следующей таблицы стилей:
/* Специфицируются пары кавычек двух уровней для двух языков */
Q:lang(en) { quotes: '"' '"' "'" "'" }
Q:lang(no) { quotes: """ """ "<" ">" }
/* Вставляются кавычки до и после содержимого элемента Q */
Q:before { content: open-quote }
Q:after { content: close-quote }
к данному фрагменту HTML:
<HTML lang="en">
<HEAD>
<TITLE>Quotes</TITLE>
</HEAD>
<BODY>
<P><Q>Quote me!</Q>
</BODY>
</HTML>
позволит ПАгенту выдать:
"Quote me!"
а данный фрагмент HTML:
<HTML lang="no">
<HEAD>
<TITLE>Quotes</TITLE>
</HEAD>
<BODY>
<P><Q>Trondere grater nar <Q>Vinsjan pa kaia</Q> blir deklamert.</Q>
</BODY>
</HTML>
выдаст:
"Trondere grater nar <Vinsjan pa kaia> blir deklamert."
| Ориентировочное представление | код ISO 10646 (hex) | Описание |
|---|---|---|
| " | 0022 | КАВЫЧКА [двойная кавычка ASCII] |
| ' | 0027 | АПОСТРОФ [одиночная кавычка ASCII] |
| < | 2039 | ОДИНОЧНАЯ ЛЕВАЯ УГЛОВАЯ КАВЫЧКА |
| > | 203A | ОДИНОЧНАЯ ПРАВАЯ УГЛОВАЯ КАВЫЧКА |
| " | 00AB | ЛЕВАЯ ДВОЙНАЯ УГЛОВАЯ КАВЫЧКА |
| " | 00BB | ПРАВАЯ ДВОЙНАЯ УГЛОВАЯ КАВЫЧКА |
| ` | 2018 | ЛЕВАЯ ОДИНОЧНАЯ КАВЫЧКА [single high-6] |
| ' | 2019 | ПРАВАЯ ОДИНОЧНАЯ КАВЫЧКА [single high-9] |
| `` | 201C | ЛЕВАЯ ДВОЙНАЯ КАВЫЧКА [double high-6] |
| '' | 201D | ПРАВАЯ ДВОЙНАЯ КАВЫЧКА [double high-9] |
| ,, | 201E | ДВОЙНАЯ КАВЫЧКА LOW-9 [double low-9] |
Знаки кавычек вставляются в соответствующих местах документа значениями
Обратите внимание, что глубина вложения кавычек не зависит от вложения документа-источника или структуры форматирования.
Некоторые
Следующая таблица стилей помещает знаки открывающей кавычки в каждом параграфе в BLOCKQUOTE и вставляет одиночную закрывающую кавычку в конце:
BLOCKQUOTE P:before { content: open-quote }
BLOCKQUOTE P:after { content: no-close-quote }
BLOCKQUOTE P.last:after { content: close-quote }
Это относится к последнему параграфу, маркированному классом "last", поскольку нет селекторов, которые могут совпадать с последним потомком элемента.
Для симметрии имеется также ключевое слово
Французский внутри английского:
The device of the order of the garter is "Honi soit qui mal y pense."
Английский внутри французского:
Il disait: " Il faut mettre l'action en < fast forward >."
Таблица стилей типа следующей установит свойство 'quotes' таким образом, что '
Это правила для документов, содержащих только английский, французский или оба этих языка. Одно правило понадобится для каждого дополнительного языка.
Обратите внимание на использование комбинатора-потомка (">") для установки кавычек в элементы на базе языка окружающего текста:
[LANG|=fr] > * { quotes: """ """ "\2039" "\203A" }
[LANG|=en] > * { quotes: "\201C" "\201D" "\2018" "\2019" }
Знаки кавычек для английского показаны здесь в такой форме, что большинство людей будет способно их напечатать.
Если Вы можете печатать их напрямую, то они будут выглядеть примерно так:
[LANG|=fr] > * { quotes: """ """ "<" ">" }
[LANG|=en] > * { quotes: """ """ "'" "'" }
Автоматическая нумерация в CSS2 контролируется двумя свойствами,
Значение: [ <identifier> <integer>? ]+ | none | inherit
Начальное: none
Применяется: ко всем элементам
Наследуется: нет
Процентное: N/A
Носитель: все
Значение: [ <identifier> <integer>? ]+ | none | inherit
Начальное: none
Применяется: ко всем элементам
Наследуется: нет
Процентное: N/A
Носитель: все
Свойство
Свойство
Если
Здесь показан способ нумерации глав и разделов: "Chapter 1", "1.1", "1.2" и т.д.:
H1:before {
content: "Chapter " counter(chapter) ". ";
counter-increment: chapter; /* Добавляет 1 к главе */
counter-reset: section; /* Устанавливает раздел в 0 */
}
H2:before {
content: counter(chapter) "." counter(section) " ";
counter-increment: section;
}
Если элемент увеличивает/сбрасывает счётчик и использует его (в свойстве
Если элемент и увеличивает, и сбрасывает счётчик, то счётчик сначала сбрасывается, а затем увеличивается.
Свойство
H1 { counter-reset: section -1 }
H1 { counter-reset: imagenum 99 }
сбросит только 'imagenum'. Чтобы сбросить оба счётчика, их нужно специфицировать вместе:
H1 { counter-reset: section -1 imagenum 99 }
Так, следующего достаточно для нумерации вложенных элементов списка. Результат очень похож на применение установки 'display:
OL { counter-reset: item }
LI { display: block }
LI:before { content: counter(item) ". "; counter-increment: item }
Самовложение базируется на том принципе, что каждый элемент, имеющий
В предыдущем примере OL создаст счётчик, и все потомки OL будут ссылаться на этот счётчик.
Если мы обозначим с помощью item[n] n-ый экземпляр счётчика "item" и "(" и ")" - начало и конец области видимости,
то следующий фрагмент HTML будет использовать указанные счётчики. (Мы используем ту же таблицу стилей, что и в предыдущем примере).
<OL> <!-- (set item[0] to 0 -->
<LI>item <!-- increment item[0] (= 1) -->
<LI>item <!-- increment item[0] (= 2) -->
<OL> <!-- (set item[1] to 0 -->
<LI>item <!-- increment item[1] (= 1) -->
<LI>item <!-- increment item[1] (= 2) -->
<LI>item <!-- increment item[1] (= 3) -->
<OL> <!-- (set item[2] to 0 -->
<LI>item <!-- increment item[2] (= 1) -->
</OL> <!-- ) -->
<OL> <!-- (set item[3] to 0 -->
<LI> <!-- increment item[3] (= 1) -->
</OL> <!-- ) -->
<LI>item <!-- increment item[1] (= 4) -->
</OL> <!-- ) -->
<LI>item <!-- increment item[0] (= 3) -->
<LI>item <!-- increment item[0] (= 4) -->
</OL> <!-- ) -->
<OL> <!-- (reset item[4] to 0 -->
<LI>item <!-- increment item[4] (= 1) -->
<LI>item <!-- increment item[4] (= 2) -->
</OL> <!-- ) -->
Функция 'counters()' генерирует строку, составленную из значений всех
Следующая таблица стилей нумерует вложенные элементы списка как "1", "1.1", "1.1.1" и т.д.
OL { counter-reset: item }
LI { display: block }
LI:before { content: counters(item, "."); counter-increment: item }
По умолчанию
counter(name)
для таблицы стилей по умолчанию, или:
counter(name, 'list-style-type')
Допустимы все стили, включая 'disc', '
H1:before { content: counter(chno, upper-latin) ". " }
H2:before { content: counter(section, upper-roman) " - " }
BLOCKQUOTE:after { content: " [" counter(bq, hebrew) "]" }
DIV.note:before { content: counter(notecntr, disc) " " }
P:before { content: counter(p, none) }
Элемент, который не отображается ('display' установлено в 'none'), не может установить или сбросить счётчик.
С помощью следующей таблицы стилей элементы H2 с классом "secret" не увеличивают 'count2'.
H2.secret {counter-increment: count2; display: none}
В то же время, элементы с 'visibility', установленной в 'hidden', увеличивают
Большинство элементов уровня блока в CSS генерируют один
В этом разделе мы обсуждаем два механизма CSS, которые заставляют элемент генерировать два бокса: один
Самым общим из этих двух механизмов является новый для CSS2 механизм, называемый
Например, следующий пример иллюстрирует, как
Эта программа HTML и таблица стилей:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
<TITLE>Создание списка с маркёрами</TITLE>
<STYLE type="text/css">
LI:before {
display: marker;
content: counter(mycounter, lower-roman) ".";
counter-increment: mycounter;
}
</STYLE>
</HEAD>
<BODY>
<OL>
<LI> Это первый элемент списка.
<LI> Это второй элемент списка.
<LI> Это третий элемент списка.
</OL>
</BODY>
</HTML>
должны дать на выходе примерно следующее:
i. Это первый элемент списка. ii. Это второй элемент списка. iii. Это третий элемент списка.
С помощью
Боксы маркёра имеют заполнение и рамку, но не имеют полей.
Для псевдоэлемента
Высота бокса маркёра задаётся в свойстве 'line-height'. Бокс маркёра
Вертикальное выравнивание бокса маркёра внутри его
Если значение свойства 'width' - 'auto', то ширина содержимого бокса маркёра является шириной содержимого, иначе - это значение 'width'. Для значений 'width' меньших, чем ширина содержимого, свойство 'overflow' специфицирует поведение при переполнении. Боксы маркёра могут перекрывать основные боксы. Для значений 'width' больших, чем ширина содержимого, свойство 'text-align' определяет горизонтальное выравнивание содержимого в боксе маркёра.
Свойство
Примечание. Если маркёр всплывает вправо от поплавка в содержимом, отформатированном слева направо, то основной бокс будет всплывать вниз от правой стороны поплавка, но боксы маркёра будут появляться слева от поплавка. Поскольку левый край рамки основного бокса расположен слева от поплавка (см. описание поплавков), а бокс маркёра расположен вне
Если свойство 'display' имеет значение 'marker' для содержимого, генерируемого элементом с '
В следующем примере содержимое центрируется в боксе маркёра фиксированной ширины. Этот документ:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
<TITLE>Выравнивание содержимого в боксе маркёра</TITLE>
<STYLE type="text/css">
LI:before {
display: marker;
content: "(" counter(counter) ")";
counter-increment: counter;
width: 6em;
text-align: center;
}
</STYLE>
</HEAD>
<BODY>
<OL>
<LI> Это первый элемент списка.
<LI> Это второй элемент списка.
<LI> Это третий элемент списка.
</OL>
</BODY>
</HTML>
должен дать примерно такой вывод:
(1) Это первый
элемент списка.
(2) Это второй
элемент списка.
(3) Это третий
элемент списка.
В следующем примере создаются
Этот документ:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
<TITLE>Маркёры до и после элементов списка</TITLE>
<STYLE type="text/css">
@media screen, print {
LI:before {
display: marker;
content: url("smiley.gif");
LI:after {
display: marker;
content: url("sad.gif");
}
}
</STYLE>
</HEAD>
<BODY>
<UL>
<LI>первый элемент списка появляется первым
<LI>второй элемент списка появляется вторым
</UL>
</BODY>
</HTML>
должен дать примерно такой вывод (здесь используется рисунок ascii вместо изображения gif улыбки):
:-) первый элемент списка
появляется первым :-(
:-) второй элемент списка
появляется вторым :-(
В следующем примере
Данный документ:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
<TITLE>Маркёры для создания нумерованных примечаний 4</TITLE>
<STYLE type="text/css">
P { margin-left: 12 em; }
@media screen, print {
P.Note:before {
display: marker;
content: url("note.gif")
"Примечание " counter(note-counter) ":";
counter-increment: note-counter;
text-align: left;
width: 10em;
}
}
</STYLE>
</HEAD>
<BODY>
<P>Это первый параграф данного документа.</P>
<P CLASS="Note">Это очень короткий документ.</P>
<P>Это конец.</P>
</BODY>
</HTML>
должен дать примерно такой вывод:
Это первый параграф
данного документа.
Примечание 1: Это очень короткий
документ.
Это конец.
Значение:
Начальное: auto
Применяется: к элементам с 'display: marker'
Наследуется: нет
Процентное: N/A
Носитель: визуальный
Это свойство специфицирует расстояние между ближайшим
Значения размеров могут быть отрицательными, но могут существовать ограничения, в зависимости от специфики реализации.
В следующем примере показано, как
Эта программа HTML и таблица стилей:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Пример маркёров 5</TITLE>
<STYLE type="text/css">
P { margin-left: 8em } /* Создаёт пространство для счётчиков */
LI:before {
display: marker;
marker-offset: 3em;
content: counter(mycounter, lower-roman) ".";
counter-increment: mycounter;
}
</STYLE>
</HEAD>
<BODY>
<P> Это большой предшествующий параграф ...
<OL>
<LI> Это первый элемент списка.
<LI> Это второй элемент списка.
<LI> Это третий элемент списка.
</OL>
<P> Это большой последующий параграф ...
</BODY>
</HTML>
должен дать примерно такой вывод:
Это большой предшествующий
параграф ...
i. Это первый элемент списка.
ii. Это второй элемент списка.
iii. Это третий элемент списка.
Это большой последующий
параграф ...
Следовательно, если маркёр M (созданный в 'display: marker') используется с элементом списка, созданным в
Вместе со
Значение: disc |
Начальное: disc
Применяется: к элементам с '
Наследуется: да
Процентное: N/A
Носитель: визуальный
Это свойство специфицирует вид маркёра элемента списка, если
Системы нумерации специфицируются с помощью:
Десятеричных чисел, начинающихся с 1.
Десятеричных чисел, дополненных начальными нулями (например, 01, 02, 03, ..., 98, 99).
Римских цифр в нижнем регистре (i, ii, iii, iv, v и т.д.).
Римских цифр в верхнем регистре (I, II, III, IV, V и т.д.).
Традиционной еврейской нумерации.
Традиционной грузинской нумерации (an,
Традиционной армянской нумерации.
Простых идеографических чисел.
a, i, u, e, o, ka, ki, ...
A, I, U, E, O, KA, KI, ...
i, ro, ha, ni, ho, he, to, ...
I, RO, HA, NI, HO, HE, TO, ...
ПА, не распознающий системы нумерации, должен использовать '
Алфавитные системы специфицируются с помощью:
Букв ascii нижнего регистра (a, b, c, ... z).
Букв ascii верхнего регистра (A, B, C, ... Z).
Классических греческих букв нижнего регистра альфа, бета, гамма, ... (?, ?, ?, ...)
Эта спецификация не определяет то, как происходит перенос алфавитной системы в конце алфавита. Например, после 26 элементов списка представление
Например, следующий документ HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
<TITLE>Нумерация латинскими буквами нижнего регистра</TITLE>
<STYLE type="text/css">
OL { list-style-type: lower-roman }
</STYLE>
</HEAD>
<BODY>
<OL>
<LI> Это первый элемент списка.
<LI> Это второй элемент списка.
<LI> Это третий элемент списка.
</OL>
</BODY>
</HTML>
может дать на выходе:
i Это первый элемент списка. ii Это второй элемент списка. iii Это третий элемент списка.
Обратите внимание, что выравнивание маркёров списка (здесь - по правому краю) зависит от ПА.
'list-style-image'
Значение:
Начальное: none
Применяется: к элементам с '
Наследуется: да
Процентное: N/A
Носитель: визуальный
Это свойство определяет изображение, которое будет использоваться как маркёр элемента списка. Если изображение доступно, оно замещает маркёр, установленный '
В следующем примере устанавливается маркёр - изображение "ellipse.png" - в начале каждого элемента списка .
UL { list-style-image: url("http://png.com/ellipse.png") }
Значение: inside | outside | inherit
Начальное: outside
Применяется: к элементам с '
Наследуется: да
Процентное: N/A
Носитель: визуальный
Это свойство специфицирует позицию бокса маркёра в
outside
Бокс маркёра находится вне
inside
Бокс маркёра это первый инлайн-бокс в боксе основного блока, после которого всплывает содержимое элемента.
Например:
<HTML>
<HEAD>
<TITLE>Сравнение позиций inside/outside</TITLE>
<STYLE type="text/css">
UL { list-style: outside }
UL.compact { list-style: inside }
</STYLE>
</HEAD>
<BODY>
<UL>
<LI>first list item comes first
<LI>second list item comes second
</UL>
<UL class="compact">
<LI>first list item comes first
<LI>second list item comes second
</UL>
</BODY>
</HTML>
Этот пример отображается так:

В тексте справа-налево
Значение: [
Начальное: не определено для сокращённых свойств
Применяется: к элементам с '
Наследуется: да
Процентное: N/A
Носитель: визуальный
Свойство
UL { list-style: upper-roman inside } /* Какой-либо UL */
UL > UL { list-style: circle outside } /* UL - потомок UL */
Хотя авторы могут специфицировать информацию о
OL.alpha LI { list-style: lower-alpha } /* LI - потомок OL */
OL.alpha > LI { list-style: lower-alpha } /* LI-наследник OL */
Авторы, использующие только селекторы-потомки, могут не получить тот результат, на который рассчитывали. Рассмотрим следующие правила:
<HTML>
<HEAD>
<TITLE>ПРЕДУПРЕЖДЕНИЕ: Непредсказуемый результат из-за каскадирования</TITLE>
<STYLE type="text/css">
OL.alpha LI { list-style: lower-alpha }
UL LI { list-style: disc }
</STYLE>
</HEAD>
<BODY>
<OL class="alpha">
<LI>level 1
<UL>
<LI>level 2
</UL>
</OL>
</BODY>
</HTML>
Ожидается, что элементы списка уровня 1 будут маркированы лэйблами 'lower-alpha', а элементы уровня 2 - лэйблами 'disc'. Однако порядок каскадирования вызовет маскирование второго правила первым (которое содержит специфическую информацию класса). В следующих правилах для решения проблемы используется
OL.alpha > LI { list-style: lower-alpha }
UL LI { list-style: disc }
Другим решением может быть спецификация информации
OL.alpha { list-style: lower-alpha }
UL { list-style: disc }
При наследовании значения
Значение URI может комбинироваться с любым другим значением, как здесь:
UL { list-style: url("http://png.com/ellipse.png") disc }
В данном примере 'disc' будет использоваться, если изображение недоступно.
Значение 'none' свойства 'list-style' устанавливает '
UL { list-style: none }
В результате - никакие
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.