CSS content — вміст псевдоелемента
Властивість content дозволяє внести зміни в згенерований текст веб-сторінки, після її завантаження.
Застосовується спільно з псевдоелементами :"after і ::before, вони відповідно додають новий вміст спереду або вкінці вмісту елемента.
Властивість content може бути корисною для того, щоб наприклад, створювати нумеровані заголовки, замінювати елементи зображеннями чи мультимедійним вмістом або вставляти перед розділом відповідного елемента слова "Глава", "Приклад", "Рисунок" тощо. Замість того, щоб додати цей вміст до самого HTML-документа, ви можете використовувати CSS для автоматичного його створення.
Ви можете використовувати попередньо визначений вміст (наприклад, відкриваючі лапки), рядок, зовнішній ресурс (такий як зображення), лічильник або значення атрибута.
автор: Svitlana
Загальний опис
автор: NagarD
- Нотатка
-
IE8 підтримує властивість тільки якщо вказаний
автор: Svitlana!DOCTYPE.
Синтаксис
content: normal|none|counter|attr|string|open-quote|close-quote|no-open-quote|no-close-quote|url|initial|inherit;
Властивість content може отримувати 12 значень:
-
url -
Абсолютний або відносна адреса файлу (зображення, звук, відео тощо). Якщо вказаний файл браузер не може відобразити, значення ігнорується.
автор: Svitlana -
normal -
Значення без задання. Задається як none для псевдоелементів
автор: Svitlana:beforeі:after -
none -
Не додає ніякого вмісту
автор: Svitlana -
counter -
Виводить значення лічильника, заданого властивістю
автор: Svitlanacounter-reset -
attr (атрибут) -
Повертає рядок, який є значенням атрибута тега зазначеного в дужках. Наприклад,
автор: Svitlanaa:after {content: attr (href)}додасть в кінці назви посилання її адресу, тобто, значення атрибута href. Якщо зазначеного атрибута немає, то повернеться порожній рядок. -
string -
Текст, який додається на веб-сторінку, рядок при цьому повинен братися в подвійні або одинарні лапки. Допускається використовувати юнікод для вставки спецсимволов. Спецсимволи HTML які починаються з амперсанда (
автор: Svitlana§наприклад), будуть відображатися як є, тобто, простим текстом (§, а не §) -
open-quote -
Вставляє відкриваючі лапки, тип яких встановлюється за допомогою CSS властивості
автор: Svitlanaquotes -
close-quote -
Вставляє закриваючі лапки, тип яких встановлюється за допомогою CSS властивості
автор: Svitlanaquotes -
no-open-quote -
Скасовує додавання відкриваючих лапок
автор: Svitlana -
no-close-quote -
Скасовує додавання закриваючих лапок
автор: Svitlana -
initial -
Встановлює властивість у значення без задання
автор: Svitlana -
inherit -
Вказує на спадковість властивості від свого батьківського елемента.
автор: Svitlana
| Значення без задання: | normal |
|---|---|
| Наслідує: | Ні |
| Анімується: | Ні |
| JavaScript синтаксис: | За допомогою Javascript не можна задати псевдоклас конкретному елементу, але існують інші способи домогтися потрібного результату. |
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| 1 | 1 | 1 | 4 | 12 | 8 |
| Переглядач | ||||
|---|---|---|---|---|
| 4.4 | 18 | 4 | 1 |
Приклади
+ запропонувати свій приклад у пісочниці
Функція attr() у content читає атрибут елемента: після кожного посилання в дужках допишеться його href.
HTML
<p><a href="https://css.in.ua">Довідник CSS</a> — адреса допишеться в дужках сама.</p>
CSS
a::after {
content: " (" attr(href) ")";
}
Свої маркери списку замість браузерних: типові вимкнено через list-style: none, а ::before домальовує кожному пункту синій маркер.
HTML
<ul>
<li>перший пункт</li>
<li>другий пункт</li>
<li>третій пункт</li>
</ul>
CSS
ul {
list-style: none; /* прибрати типові маркери */
padding: 0;
margin: 0;
}
li {
padding-left: 16px;
}
li::before {
content: "•"; /* власний маркер */
padding-right: 8px;
color: blue;
}
Приклад використання
HTML
<h1>Цитата:</h1>
<blockquote>Лапки додані за допомогою властивості <code>content.</code></blockquote>
<cite>css.in.ua</cite>
CSS
body {
font-family: sans-serif;
}
blockquote:before {
content: open-quote;
}
blockquote:after {
content:close-quote;
}
cite:before {
content: "Автор ";
}
Три типові застосування content: значення атрибута через attr(), лічильник кроків і порожній content для декору.
HTML
<h3 data-note="чернетка">Заголовок статті</h3>
<ol class="steps">
<li>Підготувати дані</li>
<li>Перевірити результат</li>
<li>Опублікувати</li>
</ol>
<p class="dot">Порожній content: "" теж створює псевдоелемент</p>
CSS
h3::after {
content: " (" attr(data-note) ")";
color: #b03030;
font-size: 0.7em;
}
.steps {
counter-reset: step;
list-style: none;
padding-left: 0;
}
.steps li {
counter-increment: step;
}
.steps li::before {
content: "Крок " counter(step) ". ";
font-weight: bold;
color: #2b6cb0;
}
.dot::after {
content: "";
display: inline-block;
width: 12px;
height: 12px;
margin-left: 8px;
background: #2b6cb0;
border-radius: 50%;
vertical-align: middle;
}
Різні значення у дії
HTML
<p>Вибери потрібне значення для <code>content</code>:</p>
<p class="notice">Так як псевдоелементи ::before i ::after не є елементами DOM, їх не можна змінювати через JavaScript. Але є хитрість: змінювати значення атрибуту, який заданий для властивості content.</p>
<input type="text" placeholder="введи значення" id="field">
<hr>
<div id="block" data-before="CSS">, це ти?</div>
CSS
* {
box-sizing: border-box;
padding: 0;
}
body {
text-align: center;
font-family: monospace;
font-size: 17px;
line-height: 1.5;
color: #222;
}
#field {
padding: 8px 16px;
font-size: 19px;
}
#block {
font-size: 25px;
color: #222;
margin-top: 36px;
}
#block:before {
content: attr(data-before);
text-decoration: underline;
color: #444;
}
.notice {
font-style: italic;
text-align: left;
padding-left: 16px;
border-left: 1px solid #ddd;
color: #444;
}
JS
var block = document.getElementById('block');
var field = document.getElementById('field');
field.onchange = function () {
block.setAttribute('data-before', this.value);
};
//# sourceURL=pen.js
Коментарі
Коментарів ще немає — будьте першим!