我想围绕要绘制的图标制作一个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>
如果可能的话,使这个响应。做这个的最好方式是什么? 如果可能的话,当用户调整大小
时,让圈子和文本自行调整大小会很好答案 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。