与一个css类的被堆积的象

时间:2013-10-25 12:18:34

标签: css icons font-awesome

在新的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";
}

enter image description here

我只想在不使用嵌套spani的情况下进行此操作,只需使用一些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" />

2 个答案:

答案 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标签中保持对两个堆叠图标的控制,你就可以得到类似的东西。

&#13;
&#13;
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="&#xf099" icon-after="&#xf096"></i></div>
&#13;
&#13;
&#13;