在新的FontAwesome 4.0.0中,堆叠项目有css样式。
<span class="fa-stack">
<i class="fa fa-square-o fa-stack-2x"></i>
<i class="fa fa-twitter fa-stack-1x"></i>
</span>
.fa-stack {
position: relative;
display: inline-block;
width: 2em;
height: 2em;
line-height: 2em;
vertical-align: middle;
}
.fa-stack-1x,
.fa-stack-2x {
position: absolute;
width: 100%;
text-align: center;
}
.fa-stack-1x {
line-height: inherit;
}
.fa-stack-2x {
font-size: 2em;
}
.fa-square-o:before {
content: "\f096";
}
我只想在不使用嵌套span
和i
的情况下进行此操作,只需使用一些css类
.myclass1 { ... }
.myclass2 { ... }
<span class=".... myclass2" />
实现相同结果的最简单方法是什么(使用fa内容类?)
更新: 或者类似以下内容可能吗?
.myclass1:before { content: '<span class="fa-stack">
<i class="fa fa-square-o fa-stack-2x"></i>
<i class="fa fa-twitter fa-stack-1x"></i>
</span>' }
<span class=".... myclass1" />
答案 0 :(得分:4)
(编辑)的
fa-*
课程无法做到这一点,因为无法确定堆叠图标的顺序:在CSS class="foo bar"
中与class="bar foo"
相同
另一方面,您可以定义自己的类并设置样式以实现一个选定的堆叠图标 - 即每对需要一个自定义类(例如fa-times
堆叠在fa-square
)。
要实现这一目标,请使用:before
和:after
选择器(以及绝对定位 - little demo)。
如果使用绝对定位,似乎(使用background
属性测试):after
元素位于:before
之上。如果不是这样,那么你总是使用z-index
手动订购这两个元素。
答案 1 :(得分:3)
关于您的更新,如果可能的话,可能会发生以下情况吗?
.myclass1:before {
content:'<span class="fa-stack">
<i class="fa fa-square-o fa-stack-2x"></i>
<i class="fa fa-twitter fa-stack-1x"></i>
</span>'
}
<span class=".... myclass1" />
不是,正如在那里解释的那样:CSS content property: is it possible to insert HTML instead of Text?
如果你想在一个HTML标签中保持对两个堆叠图标的控制,你就可以得到类似的东西。
div{
display:flex;
justify-content: center;
position:relative;
}
i:before {
content: attr(icon-before); // "\f099";
position: absolute;
font-size: 1.5em;
margin:0.1em;
}
i:after {
content: attr(icon-after); // "\f096";
position: absolute;
font-size: 2.1em;
}
&#13;
<link href="http://netdna.bootstrapcdn.com/font-awesome/4.0.0/css/font-awesome.css" rel="stylesheet"/>
<!--https://stackoverflow.com/questions/22600464/html-special-characters-in-css-content-using-attr-->
<div><i class="fa" icon-before="" icon-after=""></i></div>
&#13;