Использование глификона в качестве фонового изображения в CSS: рельсы 4 + бутстрап 3
Я использую bootstrap collapse.js, чтобы развернуть и свернуть некоторые группы ввода в приложении rails. Я использую JS для определения расширения или отсутствия группы и создания классов CSS для добавления "+" или "-", чтобы показать, открыта ли она или закрыта:
Open:
![enter image description here]()
Закрыто:
![enter image description here]()
Как вы можете видеть из CSS, я использую фоновое изображение, которое png в моих изображениях:
.expandable {
background: url('/assets/plus.png');
padding-top: 4px;
width: 400px;
height: 30px;
background-repeat: no-repeat;
padding-left: 55px;
display: block;
}
.expanded {
background: url('/assets/minus.png');
padding-top: 4px;
width: 400px;
height: 30px;
background-repeat: no-repeat;
padding-left: 55px;
display: block;
}
Я хочу использовать glyphicon-plus и glyphicon-minus вместо этих .png файлов.
Какой лучший способ выполнить это?
Обновлено:
Чтобы получить правильный стиль, я изменил CSS на:
.expandable {
height:40px;
width:50%;
margin:6px;
}
.expandable:before{
content:"\2b";
font-family:"Glyphicons Halflings";
line-height:1;
margin:5px;
}
.expanded {
height:40px;
width:50%;
margin:6px;
}
.expanded:before{
content:"\2212";
font-family:"Glyphicons Halflings";
line-height:1;
margin:5px;
}
И для справки, мой HTML:
<div class="panel-group" id="accordion">
<div class="panel panel-default">
<div class="panel-heading">
<p1 class="panel-title" >
<a data-toggle="collapse" data-parent="#accordion" href="#collapseOne" class="expandable">
Provider details
</a>
<p2>
</div>
<div id="collapseOne" class="panel-collapse collapse">
<div class="panel-body">
blah, blah....
И JS для обнаружения открытия/закрытия разделов:
$ ->
$(".expandable").click () ->
$this = $(this)
if $this.hasClass("expandable")
$this.removeClass("expandable").addClass "expanded"
else $this.removeClass("expanded").addClass "expandable" if $this.hasClass("expanded")
return
return
Ответы
Ответ 1
Здесь попробуйте Bootply. Достаточно ли этого?
<div id="lol"></div>
#lol{
height:40px;
border:1px solid #555;
width:50%;
margin:30px;
}
#lol:before{
content:"\2b";
font-family:"Glyphicons Halflings";
line-height:1;
margin:10px;
display:inline-block;
}
Ответ 2
Я сделал что-то похожее, чтобы получить эффект стрелки, используя абсолютное позиционирование для перемещения глифа туда, где я этого хотел:
li.arrow {
&:after {
content:"\e080";
font-family:"Glyphicons Halflings";
position: absolute;
right: 15px;
top: 10px;
}
padding-right: 25px;
}