我正在尝试使用css在另一个圆圈内创建一个圆圈,但我遇到了一个完全居中的问题。我很亲密,但仍然没有。有什么想法吗?
<div id="content">
<h1>Test Circle</h1>
<div id="outer-circle">
<div id="inner-circle">
<span id="inside-content"></span>
</div>
</div>
</div>
这是我的CSS:
#outer-circle {
background: #385a94;
border-radius: 50%;
height:500px;
width:500px;
}
#inner-circle {
position: relative;
background: #a9aaab;
border-radius: 50%;
height:300px;
width:300px;
margin: 0px 0px 0px 100px;
}
另外,这是一个小提琴: http://jsfiddle.net/972SF/
答案 0 :(得分:26)
在CSS评论中解释:
#outer-circle {
background: #385a94;
border-radius: 50%;
height: 500px;
width: 500px;
position: relative;
/*
Child elements with absolute positioning will be
positioned relative to this div
*/
}
#inner-circle {
position: absolute;
background: #a9aaab;
border-radius: 50%;
height: 300px;
width: 300px;
/*
Put top edge and left edge in the center
*/
top: 50%;
left: 50%;
margin: -150px 0px 0px -150px;
/*
Offset the position correctly with
minus half of the width and minus half of the height
*/
}
<div id="outer-circle">
<div id="inner-circle">
</div>
</div>
答案 1 :(得分:18)
你不需要CSS3中的额外元素
你可以使用一个元素和一个盒子阴影来完成所有操作。
<强> CSS 强>
#outer-circle {
background: #385a94;
border-radius: 50%;
height:300px;
width:300px;
position: relative;
box-shadow: 0 0 0 100px black;
margin:100px;
}
答案 2 :(得分:3)
在外圈上使用position: relative
,在内圈上使用position:absolute
,并将所有偏移设置为相同的值。让高度和宽度的自动计算处理其余部分(JSFiddle):
#outer-circle {
position:relative;
background: #385a94;
border-radius: 50%;
height:500px;
width:500px;
}
#inner-circle {
position:absolute;
background: #a9aaab;
border-radius: 50%;
right: 100px;
left: 100px;
top: 100px;
bottom: 100px;
/* no margin, no width, they get automatically calculated*/
}
答案 3 :(得分:2)
似乎top
是您唯一需要改变的地方 - &gt; http://jsfiddle.net/972SF/12/
#inner-circle {
position: relative;
background: #a9aaab;
border-radius: 50%;
height:300px;
width:300px;
top: 100px; /* <--- */
margin: 0px 0px 0px 100px;
}
答案 4 :(得分:2)
只需使用box-shadow即可获得所需的效果:
小提琴演示:http://jsfiddle.net/972SF/16/
html简化为:
<div id="content">
<h1>Test Circle</h1>
<div id="circle">
</div>
</div>
的CSS:
#circle {
margin: 10em auto;
background: #385a94;
border-radius: 50%;
height:200px;
width:200px;
-webkit-box-shadow: 1px 1px 0px 100px black;
-moz-box-shadow: 1px 1px 0px 100px black;
box-shadow: 1px 1px 0px 100px black;
}
简单易用,确保您的圈子始终完美地位于彼此旁边。
您可以通过将box-shadow上的第4个属性(100px)更改为您想要的内容来更改圆的大小。
答案 5 :(得分:1)
看看这个fiddle
自动计算中心
#outer-circle {
background: #385a94;
border-radius: 50%;
height:500px;
width:500px;
display:table-cell;
vertical-align:middle;
}
#inner-circle {
display:inline-block;
background: #a9aaab;
border-radius: 50%;
height:300px;
width:300px;
}
答案 6 :(得分:1)
以下是带有外边框的圆圈的示例。
HTML:
<div id="inner-circle"></div>
样式:
#inner-circle {
background: #385a94;
border : 2px solid white;
border-radius: 50%;
height:30px;
width:30px;
position: relative;
box-shadow: 0 0 0 1px #cfd1d1;
}
查看结果: JSFiddle
答案 7 :(得分:1)
您可以参考此JS fiddle link
以获得以下输出:
http://jsfiddle.net/suprabhasupi/74b1ptne/
div {
border-radius: 50%;
/* border: 1px solid red; */
}
.circle1 {
position: relative;
width: 300px;
height: 300px;
background-color: red;
}
.circle2 {
transform: translate(25%, 25%);
width: 200px;
height: 200px;
background-color: green;
}
.circle3 {
transform: translate(48%, 46%);
width: 100px;
height: 100px;
background-color: blue;
}
<div class="circle1">
<div class="circle2">
<div class="circle3">
</div>
</div>
</div>
答案 8 :(得分:1)
如果您只想使用一个div在圆内添加圆,则使用框阴影。
div {
border-radius: 50%;
box-shadow: 0px 0px 0px 10px red, 0px 0px 0px 20px green, 0px 0px 0px 30px yellow, 0px 0px 0px 40px pink;
width: 100px;
height:100px;
margin: 3em;
}
<div></div>
答案 9 :(得分:0)
尝试,
#inner-circle {
position: absolute;
background: #a9aaab;
border-radius: 50%;
height:300px;
width:300px;
margin: 15% 0px 0px 100px;
}
这是您更新的JSFIDDLE
答案 10 :(得分:0)
请参阅我如何定位Div,Just border-radius应该执行Job
.outer{width:500px;height:500px;background:#f00;border-radius:50%;position:relative;top:0;left:100;}
.inner{width:250px;height:250px;background:#000;border-radius:50%;position:absolute;top:125;left:125;}
<div class="outer">
<div class="inner">
</div>
</div>
答案 11 :(得分:0)
尝试给内圈一个top:50%
而不是margin-top:来自内圈高度的一半的负值。
答案 12 :(得分:0)
解决了!完全按照你想要的方式:
DEMO:http://jsfiddle.net/aniruddha153/RLWua/
HTML:
<div id="content">
<div id="outer-circle">
<div id="inner-circle">
</div>
</div>
</div>
CSS:
#content {
position: relative;
width: 100%;
padding-bottom: 100%;
}
#outer-circle {
position: absolute;
width: 50%;
height: 50%;
background-color: #000000;
border-radius: 50%;
}
#inner-circle{
margin-top: 25%;
margin-left: 25%;
position: absolute;
width: 50%;
height: 50%;
background-color: #e5e5e5;
border-radius: 50%;
}
答案 13 :(得分:0)
您可以使用 CSS 的 top 和 left 属性将其居中。
body {
width: 100%
margin:0px;
text-align: center;
}
#content {
width: 500px;
margin-left: auto;
margin-right: auto;
}
#outer-circle {
background: #385a94;
border-radius: 50%;
height:200px;
width:200px;
}
#inner-circle {
position: relative;
background: #a9aaab;
border-radius: 50%;
height:100px;
width:100px;
top:50px;
left:50px;
}
<div id="content">
<h1>Test Circle</h1>
<div id="outer-circle">
<div id="inner-circle">
<span id="inside-content"></span>
</div>
</div>
</div>
答案 14 :(得分:0)
你可以用简单的 3 行 css 来做到这一点
.outer-circle{
display: flex;
justify-content: center;
align-items: center;
}
如果你想把所有东西都放在内圈中,做你在外圈里做的事情
有关完整源代码,请查看此JSFIDDLE