我正在尝试创建一个带有边距的轮廓的圆
一切似乎都有效,除了我似乎没有那么少px
的余量
有什么建议吗?
.ui-corner-all { -moz-border-radius: 30px; -webkit-border-radius: 30px; border-radius: 30px; border: 1px solid black; margin:5px; width:30px; height:30px;}
答案 0 :(得分:34)
我会说这样对待它:
外部“边界” - 使用box shadow
内部“边缘” - 使用白色边框
内部区域 - 使用背景颜色
你们一起得到:
.circle {
background-color: #F80;
border: 3px solid #FFF;
border-radius: 18px;
box-shadow: 0 0 2px #888;
height: 30px;
width: 30px;
}
<div class="circle"></div>
通过在box-shadow上将blur-radius设置为0,可以使外边框更加清晰。
.circle {
background-color: #F80;
border: 3px solid #FFF;
border-radius: 18px;
/* offset-x | offset-y | blur-radius | spread-radius | color */
box-shadow: 0 0 0 2px #888;
height: 30px;
width: 30px;
}
<div class="circle"></div>
作为替代方案,您可以使用第二个元素:
.circle {
border: 1px solid #CCC;
border-radius: 19px;
display: inline-block;
}
.inner {
background-color: #F80;
border-radius: 15px;
margin: 3px;
height: 30px;
width: 30px;
}
<div class="circle">
<div class="inner"></div>
</div>
答案 1 :(得分:2)
正如其他人所说,只有Firefox支持。这是一种解决方法,可以执行相同的操作,甚至可以使用虚线轮廓。
.has-outline {
background: #51ab9f;
border-radius: 50%;
padding: 5px;
position: relative;
width:200px;
height:200px;
}
.has-outline:after {
border-radius: 50%;
padding: 5px;
border: 2px dashed #9dd5cf;
position: absolute;
content: '';
top: -6px;
left: -6px;
bottom: -6px;
right: -6px;
}
<div class="has-outline">
</div>
答案 2 :(得分:1)
尝试:
.ui-corner-all { -moz-border-radius: 30px; -webkit-border-radius: 30px; border-radius: 30px; border: 1px solid black; margin: 2px; background: #fcc; width: 30px; height: 30px; }
或使用内部填充:
.ui-corner-all2 { -moz-border-radius: 30px; -webkit-border-radius: 30px; border-radius: 30px; border: 1px solid black; padding: 2px; background: #fcc; width: 30px; height: 30px; }
在使用margin vs padding CSS属性时,请参阅这个小提琴。
<强> http://jsfiddle.net/MQx7r/4/ 强>
答案 3 :(得分:0)
您可以将outline
与outline-radius
结合使用。
请检查此jsFiddle。