::before
и ::after
Псевдоэлементы {content: attr()
} Значения
Демонстрация 1
- Использование псевдоэлементов
::before
и ::after
- Добавьте
data-before="0123456"
и data-after="789"
к элементу - Установите псевдоэлементы с помощью
content: attr(data-before)
и content: attr(data-after)
и font-weight: 900
ch
Единица измерения и моноширинные шрифты
Демонстрация 2
Установите следующее в верхней части CSS:
:root, body { font: 100 3.5vw/0.75 Consolas, monospace; }
Все связанные со шрифтом свойства будут ссылаться на этот набор правил. Это не только облегчит последовательность, но и очень отзывчиво.
1ch
= ширина нулевого символа: "0"
от текущего font-family
. Если ваш font-family
моноширинный шрифт, тогда все ваши символы имеют одинаковую ширину.
Демо 1
Примечание: Есть два примера: один без текстового содержимого и два с текстовым содержимым.
section {
font: 400 16px/1.45 Consolas;
background: gold;
color: blue;
}
.count::before {
content: attr(data-before);
}
.count::after {
content: attr(data-after);
font-weight: 900;
}
.B {
font-size: 0;
}
.B::before,
.B::after {
font-size: 1rem
}
.C::after {
content: attr(data-mask);
position: relative;
left: -3ch;
z-index: 1;
font-weight: 900;
}
<section class='count A' data-before='0123456' data-after='789'></section>
<section class='count B' data-before='0123456' data-after='789'>0123456789</section>
<section class='count C' data-mask='789'>0123456789</section>
Демонстрация 2
Примечание: Эта демонстрация является более сложной версией третьего примера в Демо 1
:root,
body {
font: 100 3.5vw/0.75 Consolas, monospace;
}
.box {
border: 0;
margin: 0 auto 50px;
padding: 0;
outline: 5px solid tomato;
max-width: max-content;
max-height: calc(3.5vw * .75);
white-space: nowrap;
}
section {
display: inline-block;
position: relative;
border: 0;
margin: 0;
padding: 0;
overflow: hidden;
max-width: max-content;
white-space: nowrap;
letter-spacing: 0.1ch;
background: gold;
color: navy;
}
.D {
z-index: 1;
}
.E {
z-index: 0;
margin-left: -1ch;
font-weight: 900;
color: red;
}
.red50-3 {
max-width: calc(50% - 3ch);
}
.mov50-3 {
right: calc(50% - 3ch);
}
<article class='box'>
<section class='D red50-3'>0123456789</section>
<section class='E mov50-3'>0123456789</section>
</article>