如何围绕font-awesome图标制作一个带有CSS3的圆圈?

时间:2014-09-26 17:37:40

标签: css

我想围绕要绘制的图标制作一个css3圈。我在任何其他CSS之前使用meyers重置:http://meyerweb.com/eric/tools/css/reset/reset.css

我无法得到我想要的效果。这是我的css:

i {
  display: inline-block;
  -moz-border-radius: 60px;
  -webkit-border-radius: 60px;
  border-radius: 50px;
  -moz-box-shadow: 0px 0px 2px #888;
  -webkit-box-shadow: 0px 0px 2px #888;
  box-shadow: 0px 0px 2px #888;
border: 3px solid red;
}

<i>H</i>

如果可能的话,使这个响应。做这个的最好方式是什么? 如果可能的话,当用户调整大小

时,让圈子和文本自行调整大小会很好

4 个答案:

答案 0 :(得分:5)

如果你想让它具有响应性,那么你不应该使用那个border-radius:60px或者无论如何,对于circle,border-radius:50%是完美的

现在为你的Font-Awesome图标提供圆形背景效果,你可以这样做:

.fa {background: #fcc;
padding: 1em;
text-align: center;
display: inline;
border-radius: 50%;}

但问题在于,字体真棒图标的宽度或高度不同,因此您可能会出现偏斜圆(椭圆形)

为了防止这种情况,您可以提供一些修复:

.fa {background: #fcc;
padding: 1em;
width:50px; /** fix width ***/
text-align: center;
display: inline;
border-radius: 50%;
line-height: 50px;  /** for vertical center - if needed **/

}

然后使用媒体查询,您可以针对不同的屏幕分辨率更改这些属性。

答案 1 :(得分:2)

对此的一个看法是尝试匹配您的填充/边框/背景等图标本身的大小。通过隔离这两者,您可以分别控制图标的字体大小以及圆形背景外观。

以下是codepen:http://codepen.io/wndrmnt/pen/NPOarV

<强> HTML

<ul class="list">
  <!-- Facebook Icon -->
  <li class="list__item social">
    <a href="#facebook" class="list__icon list__icon_social"><i class="icon_social fa fa-facebook-square"></i></a>
  </li>
  <!-- Child Icon -->
  <li class="list__item">
    <a href="#facebook" class="list__icon list__icon_social"><i class="icon_social fa fa-child"></i></a>
  </li>
  <!-- PayPal Icon -->
  <li class="list__item">
    <a href="#facebook" class="list__icon list__icon_social"><i class="icon_social fa fa-cc-paypal"></i></a>
  </li>

</ul>

<强> CSS

/* Remove default list styling */
ul { 
  margin: 0;
  list-style: none;
  padding: 0;
}

.list {}

.list__item {
  display: inline-block;
}

.list__icon {
  display: inline-block;
  vertical-align: middle;
  position: relative;
}

.list__icon_social {
  text-align: center;
  border-radius: 50%;
  background-color: #0066FF;
  color: #fff;
  padding: 3rem;
  font-size: 2rem;
}

.icon_social {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

答案 2 :(得分:1)

另一种选择是拥有2个独立的层;一个用于圆圈,另一个用于字体很棒的想要使用。这是代码:

.circle{
    border:2px solid orange;
    background-color:gray;
    border-radius:100px;
    width:100px;
    height:100px;
    text-align:center;
}

.fa {
    color:white;
    line-height:100px;
}

和HTML

<div>
    <div class="circle">
    <i class="fa fa-spinner fa-spin"></i>
    </div>
</div>

这里也是jsfiddle,但显然很棒的字体在那里不起作用。 BTW这不是一个响应式解决方案。

答案 3 :(得分:0)

制作圆的简单理论是你需要定义高度,宽度和半径的值必须相等。即高度:50px,宽度:50px,边界半径:50px。