::before
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since иÑÐ»Ñ 2015 г..
Ð CSS, ::before ÑоздаÑÑ Ð¿ÑевдоÑлеменÑ,коÑоÑÑй ÑвлÑеÑÑÑ Ð¿ÐµÑвÑм поÑомком вÑбÑанного ÑлеменÑа. ЧаÑÑо иÑполÑзÑеÑÑÑ Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾ÑмеÑиÑеÑкого ÑодеÑжимого в ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑвойÑÑва content. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑвлÑеÑÑÑ Ð¸Ð½Ð»Ð°Ð¹Ð½Ð¾Ð²Ñм.
/* ÐобавиÑÑ ÑеÑдÑе пеÑед ÑÑÑлками */
a::before {
content: "â¥";
}
ÐÑимеÑание:
ÐÑведоÑлеменÑÑ, ÑозданнÑе Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ::before и ::after ÑодеÑжаÑÑÑ Ð² блоке ÑоÑмаÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑлеменÑа, и поÑÑÐ¾Ð¼Ñ Ð½Ðµ пÑименÑÑÑÑÑ Ðº замеÑаемÑм ÑлеменÑам, Ñаким как <img> или <br>.
СинÑакÑиÑ
::before {
content: /* value */;
/* properties */
}
ÐÑимеÑание:
Ð CSS3 поÑвилаÑÑ Ð·Ð°Ð¿Ð¸ÑÑ ::before (Ñ Ð´Ð²ÑÐ¼Ñ Ð´Ð²Ð¾ÐµÑоÑиÑми) Ð´Ð»Ñ ÑазлиÑÐµÐ½Ð¸Ñ Ð¿ÑевдоклаÑÑов и пÑевдоÑлеменÑов. ÐÑаÑзеÑÑ Ñакже поддеÑживаÑÑ Ð·Ð°Ð¿Ð¸ÑÑ :before, введÑннÑÑ Ð² CSS2.
ÐÑимеÑÑ
>Ðобавление кавÑÑек
ÐÑÐ¾Ñ Ð¿ÑоÑÑой пÑÐ¸Ð¼ÐµÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑевдоÑлеменÑов ::before позволÑÐµÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÑÑÑ ÐºÐ°Ð²ÑÑки. ÐдеÑÑ Ð¸ÑполÑзÑеÑÑÑ ÐºÐ°Ðº пÑевдоÑÐ»ÐµÐ¼ÐµÐ½Ñ ::before, Ñак и .::after
HTML
<q>Ðемного кавÑÑек</q>, как он Ñказал, <q>лÑÑÑе Ñем ниÑего.</q>
CSS
q::before {
content: "«";
color: blue;
}
q::after {
content: "»";
color: red;
}
РезÑлÑÑаÑ
ÐÑÐ¸Ð¼ÐµÑ Ð¾ÑоÑмлениÑ
Ðожно ÑÑилизоваÑÑ ÑекÑÑ Ð¸Ð»Ð¸ изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð² ÑвойÑÑве content пÑакÑиÑеÑки лÑбÑм ÑпоÑобом.
HTML
<span class="ribbon">ÐоÑмоÑÑиÑе, где наÑ
одиÑÑÑ Ð¾ÑанжевÑй пÑÑмоÑголÑник.</span>
CSS
.ribbon {
background-color: #5bc8f7;
}
.ribbon::before {
content: "ÐоÑмоÑÑиÑе на ÑÑÐ¾Ñ Ð¾ÑанжевÑй пÑÑмоÑголÑник.";
background-color: #ffba10;
border-color: black;
border-style: dotted;
}
РезÑлÑÑаÑ
СпиÑок дел
Ð ÑÑом пÑимеÑе Ð¼Ñ Ñоздадим пÑоÑÑой ÑпиÑок дел,иÑполÑзÑÑ Ð¿ÑевдоÑлеменÑÑ. ÐÑÐ¾Ñ Ð¼ÐµÑод ÑаÑÑо пÑименÑеÑÑÑ Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½ÐµÐ±Ð¾Ð»ÑÑÐ¸Ñ ÑÑÑÐ¸Ñ Ð¾Ð² в полÑзоваÑелÑÑкий инÑеÑÑÐµÐ¹Ñ Ð¸ ÑлÑÑÑÐµÐ½Ð¸Ñ Ð²Ð¿ÐµÑаÑÐ»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑзоваÑелей.
HTML
<ul>
<li>ÐÑпиÑÑ Ð¼Ð¾Ð»Ð¾ÐºÐ°</li>
<li>СÑ
одиÑÑ Ð½Ð° пÑогÑÐ»ÐºÑ Ñ Ñобакой</li>
<li>ТÑениÑоваÑÑÑÑ</li>
<li>ÐапиÑаÑÑ ÐºÐ¾Ð´</li>
<li>СлÑÑаÑÑ Ð¼ÑзÑкÑ</li>
<li>ÐÑдÑÑ
аÑÑ</li>
</ul>
CSS
li {
list-style-type: none;
position: relative;
margin: 2px;
padding: 0.5em 0.5em 0.5em 2em;
background: lightgrey;
font-family: sans-serif;
}
li.done {
background: #ccff99;
}
li.done::before {
content: "";
position: absolute;
border-color: #009933;
border-style: solid;
border-width: 0 0.3em 0.25em 0;
height: 1em;
top: 1.3em;
left: 0.6em;
margin-top: -1em;
transform: rotate(45deg);
width: 0.5em;
}
JavaScript
var list = document.querySelector("ul");
list.addEventListener(
"click",
function (ev) {
if (ev.target.tagName === "LI") {
ev.target.classList.toggle("done");
}
},
false,
);
ÐÐ¾Ñ Ð¶Ð¸Ð²Ð¾Ð¹ пÑÐ¸Ð¼ÐµÑ Ð¿ÑиведÑнного вÑÑе кода. ÐамеÑим, ÑÑо здеÑÑ Ð½Ðµ иÑполÑзÑÑÑÑÑ Ð¸ÐºÐ¾Ð½ÐºÐ¸, а зелÑÐ½Ð°Ñ Ð³Ð°Ð»Ð¾Ñка на Ñамом деле ÑвлÑеÑÑÑ Ð¿ÑевдоÑлеменÑом ::before, ÑÑилизованном Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ CSS. ÐопÑобÑйÑе вÑполниÑÑ Ð½ÐµÐºÐ¾ÑоÑÑе веÑи ÑпиÑка.
РезÑлÑÑаÑ
ÐÑимеÑаниÑ
ХоÑÑ Ð¸ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² Firefox 3.5 не позволÑÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ð½Ð¾Ð¼Ñ ÑодеÑÐ¶Ð¸Ð¼Ð¾Ð¼Ñ Ð²ÐµÑÑи ÑÐµÐ±Ñ ÐºÐ°Ðº оÑделÑнÑй пÑедÑеÑÑвÑÑÑий ÑÐ»ÐµÐ¼ÐµÐ½Ñ (ÑоглаÑно ÑпеÑиÑикаÑии CSS: "ÐÑевдоÑлеменÑÑ :before и :after взаимодейÑÑвÑÑÑ Ñ Ð´ÑÑгими ÑлеменÑами... как еÑли Ð±Ñ Ð¾Ð½Ð¸ бÑли наÑÑоÑÑими ÑлеменÑами, добавленнÑми в ÑооÑвеÑÑÑвÑÑÑий им ÑлеменÑ."), они могÑÑ Ð±ÑÑÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ñ Ð´Ð»Ñ Ð½ÐµÐ±Ð¾Ð»ÑÑого ÑлÑÑÑÐµÐ½Ð¸Ñ Ð² ÑазмеÑке без ÑÐ°Ð±Ð»Ð¸Ñ (напÑÐ¸Ð¼ÐµÑ Ð´Ð»Ñ ÑенÑÑиÑованиÑ). РпÑедположении, ÑÑо ÑодеÑжимое, коÑоÑое необÑ
одимо ÑенÑÑиÑоваÑÑ, Ñже обÑÑнÑÑо в некоÑоÑÑй ÑлеменÑ, ÑÑолбÑÑ Ð¿ÐµÑед и поÑле ÑодеÑжимого могÑÑ Ð±ÑÑÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ñ Ð±ÐµÐ· Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´ÑÑгиÑ
ÑлеменÑов (напÑÐ¸Ð¼ÐµÑ Ð² данном ÑлÑÑае веÑоÑÑно ÑвлÑеÑÑÑ Ð±Ð¾Ð»ÐµÐµ коÑÑекÑнÑм обеÑнÑÑÑ ÑекÑÑ Ð² ÑÐ»ÐµÐ¼ÐµÐ½Ñ <span>, как в пÑимеÑе ниже, вмеÑÑо Ñого ÑÑÐ¾Ð±Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÑÑÑ Ð´Ð²Ð° пÑÑÑÑÑ
ÑлеменÑа <div/> до и поÑле ÑекÑÑа). (РвÑегда ÑÑÑанавливайÑе ÑиÑÐ¸Ð½Ñ Ð¿Ð»Ð°Ð²Ð°ÑÑего ÑлеменÑа, инаÑе он не бÑÐ´ÐµÑ Ð¿Ð»Ð°Ð²Ð°ÑÑим!)
HTML
<div class="example">
<span id="floatme"
>"ÐлаваÑÑий пеÑед" бÑÐ´ÐµÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½ Ñлева Ð¾Ñ ÑекÑÑа и не Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ Ð¿ÐµÑеполнениÑ
ÑÑой ÑÑÑоки обÑекаÑÑ ÐµÐ³Ð¾ ÑнизÑ. ÐналогиÑно, "ÐлаваÑÑий поÑле" бÑÐ´ÐµÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½
ÑпÑава Ð¾Ñ ÑекÑÑа и не Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ Ð¿ÐµÑÐµÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑÑой ÑÑÑоки обÑекаÑÑ ÐµÐ³Ð¾
ÑнизÑ.</span
>
</div>
CSS
#floatme {
float: left;
width: 50%;
}
/* ЧÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ Ð¿ÑÑÑой ÑÑÐ¾Ð»Ð±ÐµÑ Ð´Ð¾ÑÑаÑоÑно ÑказаÑÑ ÑеÑÑнадÑаÑеÑиÑнÑй код неÑазÑÑвного пÑобела \a0 в каÑеÑÑве ÑодеÑжимого (иÑполÑзÑйÑе \0000a0, еÑли за ÑÑим пÑобелом ÑледÑÑÑ Ð´ÑÑгие ÑимволÑ) */
.example::before {
content: "ÐлаваÑÑий пеÑед";
float: left;
width: 25%;
}
.example::after {
content: "ÐлаваÑÑий поÑле";
float: right;
width: 25%;
}
/* ÐÐ»Ñ ÑÑилизаÑии */
.example::before,
.example::after {
background: yellow;
color: red;
}
РезÑлÑÑаÑ
СпеÑиÑикаÑии
| Specification |
|---|
| CSS Pseudo-Elements Module Level 4 > # selectordef-before > |