在一个圆圈中制作字体真棒图标?

时间:2014-02-20 11:00:39

标签: css font-awesome

我在某个项目上使用字体awsome但我有一些我想用字体真棒图标做的事情,我可以轻松调用这样的图标

<i class="fa fa-lock"></i>

是否有可能所有图标总是带有边框的圆形,这样的东西我有图片

enter image description here

使用

i
{
 background-color: white;
 border-radius: 50%;
 border: 1x solid grey;
 padding:10px;
}

会起作用,但问题是图标总是比那个txt或元素更大,任何解决方案?

14 个答案:

答案 0 :(得分:204)

使用Font Awesome,您可以轻松使用这样的堆叠图标:

<span class="fa-stack fa-lg">
  <i class="fa fa-circle-thin fa-stack-2x"></i>
  <i class="fa fa-lock fa-stack-1x"></i>
</span>

参考Font Awesome Stacked Icons

更新: - 小提琴stacked icons

答案 1 :(得分:142)

i.fa {
  display: inline-block;
  border-radius: 60px;
  box-shadow: 0px 0px 2px #888;
  padding: 0.5em 0.6em;

}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />
<i class="fa fa-wrench"></i>

<小时/> 旧答案的JsFiddle:http://fiddle.jshell.net/4LqeN/

答案 2 :(得分:28)

你不需要css或html技巧。 Font Awesome已经内置了它 - fa-stack

<span class="fa-stack fa-lg">
  <i class="fa fa-circle fa-stack-2x"></i>
  <i class="fa fa-flag fa-stack-1x fa-inverse"></i>
</span> 

//我们现在圈内有facebook图标:)

答案 3 :(得分:24)

如果您使用ems进行测量,包括line-heightfont-sizeborder-radius,使用text-align: center,它会让事情变得非常可靠:

#info i {
  font-size: 1.6em;
  width: 1.6em;
  text-align: center;
  line-height: 1.6em;
  background: #666;
  color: #fff;
  border-radius: 0.8em; /* or 50% width & line-height */
}

答案 4 :(得分:11)

更新:而是使用flex。

如果你想要精确度,这就是你要走的路。

小提琴。去玩 - &gt; http://jsfiddle.net/atilkan/zxjcrhga/

这是HTML

<div class="sosial-links">
    <a href="#"><i class="fa fa-facebook fa-lg"></i></a>
    <a href="#"><i class="fa fa-twitter fa-lg"></i></a>
    <a href="#"><i class="fa fa-google-plus fa-lg"></i></a>
    <a href="#"><i class="fa fa-pinterest fa-lg"></i></a>
</div>

这是CSS

.sosial-links a{
    display: block;
    float: left;
    width: 36px;
    height: 36px;
    border: 2px solid #909090;
    border-radius: 20px;
    margin-right: 7px; /*space between*/

} 
.sosial-links a i{
    padding: 12px 11px;
    font-size: 20px;
    color: #909090;
}

玩得开心

答案 5 :(得分:8)

您也可以这样做。我想在我的icomoon图标周围添加一个圆圈。这是代码。

span {
font-size: 54px;
border-radius: 50%;
border: 10px solid rgb(205, 209, 215);
padding: 30px;
}

答案 6 :(得分:4)

这是您不需要使用padding的方法,只需为height设置widtha,然后让flex处理与margin: 0 auto

.social-links a{
  text-align:center;
	float: left;
	width: 36px;
	height: 36px;
	border: 2px solid #909090;
	border-radius: 100%;
	margin-right: 7px; /*space between*/
    display: flex;
    align-items: flex-start;
    transition: all 0.4s;
    -webkit-transition: all 0.4s;
} 
.social-links a i{
	font-size: 20px;
    align-self:center;
	color: #909090;
    transition: all 0.4s;
    -webkit-transition: all 0.4s;
    margin: 0 auto;
}
.social-links a i::before{
  display:inline-block;
  text-decoration:none;
}
.social-links a:hover{
  background: rgba(0,0,0,0.2);
}
.social-links a:hover i{
  color:#fff;
}
<link href="http://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet"/>

<div class="social-links">
    <a href="#"><i class="fa fa-facebook fa-lg"></i></a>
    <a href="#"><i class="fa fa-twitter fa-lg"></i></a>
    <a href="#"><i class="fa fa-google-plus fa-lg"></i></a>
    <a href="#"><i class="fa fa-pinterest fa-lg"></i></a>
</div>

答案 7 :(得分:4)

<强>更新

最近学习flex时,有一种更清洁的方式(没有表格和更少的CSS)。将包装器设置为display: flex;,并使其子项居中,为(垂直)和align-items: center;(水平)居中提供属性justify-content: center;

请参阅此updated JS Fiddle

奇怪的是之前没有人提出过这个问题。我总是用表来做这件事 只需使包装器中包含display: table和中心内容,其中text-align: center用于水平,vertical-align: middle用于垂直对齐。

<div class='wrapper'>
  <i class='icon fa fa-bars'></i>
</div>

和这样的一些sass

.wrapper{
  display: table; 

  i{
    display: table-cell;
    vertical-align: middle;
    text-align: center;
  }

}

或看到此JS Fiddle

答案 8 :(得分:2)

下面的例子对我来说不起作用,这是我工作的版本!

HTML:

<div class="social-links">
    <a href="#"><i class="fa fa-facebook fa-lg"></i></a>
    <a href="#"><i class="fa fa-twitter fa-lg"></i></a>
    <a href="#"><i class="fa fa-google-plus fa-lg"></i></a>
    <a href="#"><i class="fa fa-pinterest fa-lg"></i></a>
</div>

CSS:

.social-links {
    text-align:center;
}

.social-links a{
    display: inline-block;
    width:50px;
    height: 50px;
    border: 2px solid #909090;
    border-radius: 50px;
    margin-right: 15px;

}
.social-links a i{
    padding: 18px 11px;
    font-size: 20px;
    color: #909090;
}

答案 9 :(得分:2)

试试这个

HTML:

<div class="icon-2x-circle"><i class="fa fa-check fa-2x"></i></div>

CSS:

i {
    width: 30px;
    height: 30px;
}

.icon-2x-circle {
    text-align: center;
    padding: 3px;
    display: inline-block;
    -moz-border-radius: 100px;
    -webkit-border-radius: 100px;
    border-radius: 100px;
    -moz-box-shadow: 0px 0px 2px #888;
    -webkit-box-shadow: 0px 0px 2px #888;
    box-shadow: 0px 0px 2px #888;
}

答案 10 :(得分:1)

字体真棒图标作为:之前插入。因此,您可以设置 i a 的样式:

.i {
   background: #fff;
   border-radius: 50%;
   display: inline-block;
   height: 20px;   
   width: 20px;
}

<a href="#"><i class="fa fa-facebook fa-lg"></i></a>

答案 11 :(得分:0)

您可以使用以下代码简单地获取圆形图标:

<a class="facebook-share-button social-icons" href="" target="_blank">
<i class="fab fa-facebook socialicons"></i>

现在您的CSS将是:

.social-icons {
display: inline-block;border-radius: 60px;box-shadow: 0px 0px 2px #888;padding: 0.5em 0.6em;background: #0D47A1;font-size: 20px;
}.socialicons{color: white;}

答案 12 :(得分:0)

我喜欢戴夫·埃弗里特(Dave Everitt)的“行高”答案,但是只能通过指定“高度”来工作,然后我们必须在行高中添加“!important”。

.cercle {
    font-size: 2em;
    width: 2em;
    height: 2em;
    text-align: center;
    line-height: 2em!important;
    background: #666;
    color: #fff;
    border-radius: 2em;
}

答案 13 :(得分:0)

这是到目前为止我发现的最好,最精确的解决方案。

CSS:

.social .fa {
      margin-right: 1rem;
      border: 2px #fff solid;
      border-radius: 50%;
      height: 20px;
      width: 20px;
      line-height: 20px;
      text-align: center;
      padding: 0.5rem;
    }