1

我正在尝试垂直对齐字体图标。我试过vertical-align: middle了,但我总是有点对齐差异。下面的示例有 2 种不同的方式来使用图标,并且它们没有正确对齐。

div {
  font-size: 50px;
  font-family: helvetica, arial, sans-serif;
  text-transform: uppercase;
  background: yellow;
}

.cart {
  margin-top: 20px;
}

.cart:before {
  font-family: "fanatic-icons" !important;
  font-weight: normal;
  content: "b";
  margin-right: 5px;
  vertical-align: middle;
  text-transform: none;
}
<link rel="stylesheet" type="text/css" href="https://fontastic.s3.amazonaws.com/PxvnwqrSXE7pXNDNDqGp4i/icons.css">

<div>
  <span class="icon icon-shopping-cart"></span> Shopping Cart
</div>

<div class="cart">
  Shopping Cart
</div>

例子

4

6 回答 6

2

您可以尝试vertical-align: text-bottomvertical-align: text-top,这取决于您觉得哪个更垂直居中。

对于您的购物车图标,它似乎text-top是最垂直居中的。

示例在:https ://jsfiddle.net/p3g189bg/

于 2015-05-07T07:03:46.507 回答
0

你可以试试vertical-align:middle;

或者line-height:1;

或使用padding属性,您可以设置图标位置

使用vertical:middle;属性 js fiddle 的示例:http: //jsfiddle.net/vrcarwrj/

于 2015-02-25T10:00:27.993 回答
0

尝试使用line-height属性

您可以将其设置为0.5,1,1.5

于 2015-02-25T10:06:50.540 回答
0

或者,使用您描述的 span 元素方法,您可以相对于其父 div 元素相对定位 span 标签。

像:

div{
 position: relative;
}    
span.icon-shopping-cart{
 position: relative;
 top: 5px;
}
于 2015-02-25T10:17:08.860 回答
0

您可以尝试使用valign: middle

和/或然后将其设置line-height为 1px、1.5px 等。

于 2015-02-25T12:30:57.387 回答
0

另一个现在通过 Flexbox 的例子。

span {
  font-family: helvetica, arial, sans-serif;
  display: inline-flex;
  align-items: center;
  padding: 0 1rem;
  font-size: 3rem;
  line-height: 4rem;
  border: 1px solid #ffb0d1;
}

/* target all Font Awesome 5 <svg> tags */
.svg-inline--fa {
  padding-right: 1.5rem;
}
<script src="https://use.fontawesome.com/releases/v5.12.1/js/all.js"></script>
<span>
   <i class="fas fa-shopping-cart"></i>
   Shopping Cart
</span>

于 2020-03-11T07:56:10.037 回答