9.1.7 多图叠加
另外一个比较令人赞叹的特性是,Font Awesome的图标支持多个叠加在一起组成复合特效的图标,而使用这个特性只需要多应用两个样式即可。示例如下:
- <span class="icon-stack">
- <i class="icon-check-empty icon-stack-base"></i>
- <i class="icon-twitter"></i>
- </span>在icon-check-empty上应用icon-twitter<br>
- <span class="icon-stack">
- <i class="icon-circle icon-stack-base"></i>
- <i class="icon-flag icon-light"></i>
- </span>在icon-circle上应用icon-flag,并设置icon-flag为icon-light白色<br>
- <span class="icon-stack">
- <i class="icon-sign-blank icon-stack-base"></i>
- <i class="icon-terminal icon-light"></i>
- </span>在icon-sign-blank上应用icon-terminal,并设置
- icon-terminals为icon-light白色
上述代码通过组合6个不同的图标,可以形成3个新的复合图标,如图9-7所示。看起来很不错吧?
图9-7 多图叠加效果
上述效果用到了两个样式:icon-stack(作为容器样式)、icon-stack-base(作为底部样式)。源码如下:
- // 源码244行
- /* Stacked and layered icon */
- .icon-stack {
- position: relative;
- display: inline-block;
- width: 2em;
- height: 2em;
- line-height: 2em;
- vertical-align: -35%;
- }
- .icon-stack [class^="icon-"],
- .icon-stack [class*=" icon-"] {
- display: block;
- text-align: center;
- position: absolute; /* 相对于icon-stack-base元素绝对定位 */
- width: 100%;
- height: 100%;
- font-size: 1em;
- line-height: inherit;
- *line-height: 2em;
- }
- .icon-stack .icon-stack-base {
- font-size: 2em;
- *line-height: 1em;
- }