Охват содержимого без дополнительного тега элемента
Я пытаюсь создать значки плюс и минус, используя промежутки для моих аккордеонов. Мне удалось украсить промежуток в круг, однако, не ставя <p>+</p>
внутри <span class="accordian-icon"></span>
Как я могу поставить "+" внутри диапазона, используя правило содержимого CSS?
HTML
<div class="accordian-head">
<h3><a href="#">Normal text</a></h3><span class="accordian-icon"></span>
</div>
CSS
.accordian-container .accordian-head span.accordian-icon{
content: "+";
display: block;
width: 30px;
height: 30px;
float: right;
background: white;
-webkit-border-radius: 30px;
-moz-border-radius: 30px;
border-radius: 30px;
margin:10px;
}
2 ответа
Решение
Как насчет этой скрипки (в качестве примера того, как это можно сделать, есть несколько подходов).
Важно отметить, что content
свойство может быть использовано только в сочетании с :after
или же :before
псевдоэлементы.
CSS
.accordian-icon{
display:inline-block;
position:relative;
border:1px solid blue;
border-radius:99px;
background:blue;
height:20px;
width:20px;
position:relative;
}
.accordian-icon:after{
color:white;
content:'+';
position:relative;
margin-left:5px;
}
Вы можете сделать это с помощью &:after/&:before и позиционировать их как абсолютные значения в относительном контейнере (в этом примере span).
Вот скрипка с простым предварительным просмотром того, что я имею в виду.
HTML<span class="plus"></span>
CSS
.plus {
width: 200px;
height: 60px;
background-color: red;
display: inline-block;
position: relative;
}
.plus:after {
content: '+';
color: #fff;
font-family: arial, sans-serif;
font-size: 16px;
position: absolute;
right: 21px;
top: 50%;
margin-top: -8px;
}