css - 边框上有边距的圆圈

时间:2012-10-12 19:05:14

标签: css

我正在尝试创建一个带有边距的轮廓的圆 一切似乎都有效,除了我似乎没有那么少px的余量 有什么建议吗?

enter image description here

.ui-corner-all { -moz-border-radius: 30px; -webkit-border-radius: 30px; border-radius: 30px; border: 1px solid black; margin:5px; width:30px; height:30px;}

继承我的小提琴:http://jsfiddle.net/nalagg/K6pdr/

4 个答案:

答案 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支持。这是一种解决方法,可以执行相同的操作,甚至可以使用虚线轮廓。

circle

.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)

您可以将outlineoutline-radius结合使用。 请检查此jsFiddle