CSS псевдоэлементы
Что такое псевдоэлементы?
Псевдоэлемент CSS используется для стилизации определенных частей элемента.
Например, его можно использовать для:
- Стиль первой буквы или строки элемента
- Вставка содержимого до или после содержимого элемента
Синтаксис
Синтаксис псевдоэлементов:
selector::pseudo-element {
property: value;
}
Псевдоэлемент ::first-line
Псевдоэлемент ::first-line
используется для добавления особого стиля к первой строке текста.
В следующем примере форматируется первая строка текста во всех элементах <p>:
Пример
p::first-line
{
color: #ff0000;
font-variant: small-caps;
}
Примечание . ::first-line
Псевдоэлемент можно применять только к элементам блочного уровня.
К псевдоэлементу применяются следующие свойства ::first-line
:
- свойства шрифта
- свойства цвета
- свойства фона
- межсловный интервал
- Межбуквенное расстояние
- украшение текста
- вертикальное выравнивание
- преобразование текста
- высота линии
- чистый
Обратите внимание на нотацию с двойным двоеточием — ::first-line
против
:first-line
Двойное двоеточие заменило нотацию с одним двоеточием для псевдоэлементов в CSS3. Это была попытка W3C провести различие между псевдоклассами
и псевдоэлементами .
Синтаксис с одним двоеточием использовался как для псевдоклассов, так и для псевдоэлементов в CSS2 и CSS1.
В целях обратной совместимости для псевдоэлементов CSS2 и CSS1 допустим синтаксис с одним двоеточием.
Псевдоэлемент ::first-letter
Псевдоэлемент ::first-letter
используется для добавления особого стиля к первой букве текста.
В следующем примере форматируется первая буква текста во всех элементах <p>:
Пример
p::first-letter
{
color: #ff0000;
font-size: xx-large;
}
Примечание . ::first-letter
Псевдоэлемент можно применять только к элементам блочного уровня.
К псевдоэлементу ::first-letter применяются следующие свойства:
- свойства шрифта
- свойства цвета
- свойства фона
- маржинальные свойства
- свойства заполнения
- граничные свойства
- украшение текста
- вертикальное выравнивание (только если "float" равно "none")
- преобразование текста
- высота линии
- плавать
- чистый
Псевдоэлементы и классы HTML
Псевдоэлементы можно комбинировать с классами HTML:
Пример
p.intro::first-letter {
color: #ff0000;
font-size: 200%;
}
В приведенном выше примере первая буква абзаца с class="intro" будет отображаться красным цветом и большего размера.
Несколько псевдоэлементов
Также можно комбинировать несколько псевдоэлементов.
В следующем примере первая буква абзаца будет красной с размером шрифта xx. Остальная часть первой строки будет синего цвета и написана маленькими заглавными буквами. Остальная часть абзаца будет иметь размер и цвет шрифта по умолчанию:
Пример
p::first-letter
{
color: #ff0000;
font-size: xx-large;
}
p::first-line
{
color: #0000ff;
font-variant: small-caps;
}
CSS — Псевдоэлемент ::before
Псевдоэлемент ::before
можно использовать для вставки содержимого перед содержимым элемента.
В следующем примере изображение вставляется перед содержимым каждого элемента <h1>:
Пример
h1::before
{
content: url(smiley.gif);
}
CSS — Псевдоэлемент ::after
Псевдоэлемент ::after
можно использовать для вставки содержимого после содержимого элемента.
В следующем примере изображение вставляется после содержимого каждого элемента <h1>:
Пример
h1::after
{
content: url(smiley.gif);
}
CSS — Псевдоэлемент ::marker
Псевдоэлемент ::marker
выбирает маркеры элементов списка.
Следующий пример стилизует маркеры элементов списка:
Пример
::marker {
color: red;
font-size: 23px;
}
CSS — Псевдоэлемент ::selection
Псевдоэлемент ::selection
соответствует части элемента, выбранной пользователем.
Следующие свойства CSS могут быть применены к ::selection
:
color
,
background
, cursor
и outline
.
В следующем примере выделенный текст отображается красным цветом на желтом фоне:
Пример
::selection {
color: red;
background: yellow;
}
Все псевдоэлементы CSS
Selector | Example | Example description |
---|---|---|
::after | p::after | Insert something after the content of each <p> element |
::before | p::before | Insert something before the content of each <p> element |
::first-letter | p::first-letter | Selects the first letter of each <p> element |
::first-line | p::first-line | Selects the first line of each <p> element |
::marker | ::marker | Selects the markers of list items |
::selection | p::selection | Selects the portion of an element that is selected by a user |
Все псевдоклассы CSS
Selector | Example | Example description |
---|---|---|
:active | a:active | Selects the active link |
:checked | input:checked | Selects every checked <input> element |
:disabled | input:disabled | Selects every disabled <input> element |
:empty | p:empty | Selects every <p> element that has no children |
:enabled | input:enabled | Selects every enabled <input> element |
:first-child | p:first-child | Selects every <p> elements that is the first child of its parent |
:first-of-type | p:first-of-type | Selects every <p> element that is the first <p> element of its parent |
:focus | input:focus | Selects the <input> element that has focus |
:hover | a:hover | Selects links on mouse over |
:in-range | input:in-range | Selects <input> elements with a value within a specified range |
:invalid | input:invalid | Selects all <input> elements with an invalid value |
:lang(language) | p:lang(it) | Selects every <p> element with a lang attribute value starting with "it" |
:last-child | p:last-child | Selects every <p> elements that is the last child of its parent |
:last-of-type | p:last-of-type | Selects every <p> element that is the last <p> element of its parent |
:link | a:link | Selects all unvisited links |
:not(selector) | :not(p) | Selects every element that is not a <p> element |
:nth-child(n) | p:nth-child(2) | Selects every <p> element that is the second child of its parent |
:nth-last-child(n) | p:nth-last-child(2) | Selects every <p> element that is the second child of its parent, counting from the last child |
:nth-last-of-type(n) | p:nth-last-of-type(2) | Selects every <p> element that is the second <p> element of its parent, counting from the last child |
:nth-of-type(n) | p:nth-of-type(2) | Selects every <p> element that is the second <p> element of its parent |
:only-of-type | p:only-of-type | Selects every <p> element that is the only <p> element of its parent |
:only-child | p:only-child | Selects every <p> element that is the only child of its parent |
:optional | input:optional | Selects <input> elements with no "required" attribute |
:out-of-range | input:out-of-range | Selects <input> elements with a value outside a specified range |
:read-only | input:read-only | Selects <input> elements with a "readonly" attribute specified |
:read-write | input:read-write | Selects <input> elements with no "readonly" attribute |
:required | input:required | Selects <input> elements with a "required" attribute specified |
:root | root | Selects the document's root element |
:target | #news:target | Selects the current active #news element (clicked on a URL containing that anchor name) |
:valid | input:valid | Selects all <input> elements with a valid value |
:visited | a:visited | Selects all visited links |