如何舍入超棒的字体图标?

How to round font-awesome icons?

我正在尝试将超棒的字体图标四舍五入。请参考 - http://jsfiddle.net/JfGVE/1704/

问题是,无论如何,圆角图标更椭圆。无法使它成为完美的圆形。下面是我的 css 代码 -

i {
display: inline-block;
background: gray;
color: white;
border-radius: 50%;
padding: 5px;
}

只需使用这个:

<i class="fa fa-times-circle"></i>

或者如果你愿意,你也可以试试这个:

i.custom {
  display: inline-block;
  background: gray;
  color: white;
  border-radius: 50%;
}
i.custom:before,
i.custom:after {
  display: inline-block;
  vertical-align: middle;
  height: 40px;
  width: 40px;
  line-height: 40px;
  text-align: center;
}
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" />
<i class="custom fa fa-close"></i>
<i class="fa fa-times-circle"></i>

尝试调整 height/width 并重新设置行高:

i {
  display: inline-block;
  background: gray;
  color: white;
  border-radius: 50%;
  padding: 0.3em; /* adjust padding */
  line-height: initial !important; /* reset line-height */
  height: 1em;
  width: 1em;
  text-align:center;
}
<link rel="stylesheet" href="https://netdna.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" />
<i class="fa fa-close"></i>
<br>
<i class="fa fa-camera-retro fa-lg"></i> fa-lg
<i class="fa fa-camera-retro fa-2x"></i> fa-2x
<i class="fa fa-close fa-3x"></i> fa-3x
<i class="fa fa-info fa-4x"></i> fa-4x
<i class="fa fa-camera-retro fa-5x"></i> fa-5x

[编辑] 图标大小不相等 height/width。 所以我更改了答案并添加了 height: 1em; width: 1em; text-align: center;

最好避免以像素为单位设置固定的宽度和高度。这是一个使用额外的 div 和 after 伪元素来绘制圆的解决方案,请参阅 DEMO

HTML:

<div class="container">
  <i class="fa fa-close"></i>
</div>

CSS:

.container {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: #555;
  min-width: 2em;
  border-radius: 50%;
  vertical-align: middle;
}

.container:after {
  content:'';
  float: left;
  width: auto;
  padding-bottom: 100%;
}