#html #css
Вопрос:
Эффект, которого я добиваюсь, заключается в том, чтобы иметь разные фоны на блоке и текст внутри блока, как это:
body {
background-color: indigo;
}
p {
background-color: orange;
text-align:center;
font-size: 20px;
}
span {
display: inline-block;
padding: 0 0.5em;
background-color: moccasin;
}
<p><span>Highlight this text</span></p>
Есть ли способ сделать это без <span>
элемента? Итак, только с помощью CSS и следующей HTML-разметки?
<p>Highlight this text</p>
Я просматривал доступный список псевдоклассов и псевдоэлементов, но не вижу ничего, что могло бы сработать.
Ответ №1:
Да и без псевдоэлемента
body {
background-color: indigo;
}
p {
font-size: 20px;
padding: 0 0.5em;
display:table; /* fit text content*/
margin:auto; /* center */
background-color: moccasin; /* main background */
box-shadow:0 0 0 200vmax orange; /* a huge shadow to simulate the second background */
clip-path:inset(0 -100vmax); /* clip the shadow to show only left/right part of it */
}
<p>Highlight this text</p>