CSS图标:无法删除顶部和底部填充(字体很棒)

时间:2014-04-17 00:54:51

标签: html css font-awesome-3.2

这是我的小提琴:

http://jsfiddle.net/schmudde/VeA6B/

我无法删除字体真棒图标两侧的顶部和底部填充:

span {
    border: 1px solid red;
    line-height: 40%;
}
i {
    border: 1px solid green;
    padding: 0px;
    margin: 0px;
    display: inline-block;
    width: auto;
    height: auto;
    line-height: inherit;
    vertical-align: baseline;
    background-color: red;
}

<span><i class="icon-check icon-3x"></i></span>

我尝试了特定的行高和继承行高。这里有一些基本的东西,我显然不理解。

3 个答案:

答案 0 :(得分:6)

使用span { line-height: 100%; },这样就可以填补阻止。

答案 1 :(得分:6)

line-height标记上的图标添加到伪类:before时,跨度上的<i />不会对您有所帮助。这个伪类会创建一个隐藏的元素,如果你可以调用它。

所以如果你想覆盖css:

.icon-check:before { font-size: 2rem; }

删除图标的填充可能很棘手。如果您将span设置为display: inline-block,则可以将heightwidthoverflow: hidden结合使用。

span {
    border: 1px solid #FF0000;
    display: inline-block;
    height: 38px;
    overflow: hidden;
    position: relative;
    width: 45px;
}
i.icon-check:before {
    left: 0;
    position: absolute;
    top: -4px;
}

DEMO

答案 2 :(得分:0)

您在span中设置了边框,并在i中继承了行高,这就是问题所在。

只需向i添加边框:

span {
   line-height: 40%;
     }
i {
   border: 1px solid red;
   border: 1px solid green;
   padding: 0px;
   margin: 0px;
   display: inline-block;
   width: auto;
   height: auto;
   line-height: inherit;
   vertical-align: baseline;
   background-color: red;
   }

   <span><i class="icon-check icon-3x"></i></span>

Fiddle