我有<div>
,其中包含三个<div>
个。
在每个<div>
元素中都有<p>
元素,其中包含文本和2个嵌套元素,以生成径向进度条。我需要的是将文本放在圆圈的中间,并使用纯CSS响应。我需要这样的东西:
该代码存在缺陷,例如<p>
内的<span>
,但我会在新版本的帮助下修复它。
.radius-container div {
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
}
.radius-container div:first-child {
margin-right: 1%;
}
.radius {
padding-top: 11em;
height: 30em;
text-align: center;
border: 1px solid #858280;
display: block;
border-radius: 50%;
width: 100%;
}
.radius3 {
position: relative;
padding-top: 10%;
height: 15em;
width: 50%;
text-align: center;
border: 1px solid #858280;
border-left: 0;
border-bottom: 0;
border-top-right-radius: 100%;
display: block;
margin-left: 15em;
}
.radius3 p {
position: absolute;
right: 50%;
top: 65%;
}
&#13;
<div class="radius-container">
<div><span class="radius"><p>SERBIAN<br>100%</p></span></div>
<div><span class="radius"><p>ENGLISH<br>100%</p></span></div>
<div><span class="radius3"><p>GERMAN<br>25%</p></span></div>
</div>
&#13;
另见jsFiddle
答案 0 :(得分:0)
经过长时间研究这个问题后,我找到了一个通用的解决方案来解决这种问题。我为此感到自豪,简单而优雅:)
.center-element{
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
希望它有所帮助,任何疑问都让我知道。干杯队友:))
答案 1 :(得分:0)
您可以将border-radius的div设为50%。之后,您可以使用柔性显示器以垂直和水平方向居中。
HTML
div {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
}
div div {
display: inline-flex;
flex-direction: column;
width: 31%;
margin: 1%;
border-radius: 50%;
border: 1px solid #999;
align-items: center;
justify-content: center;
}
div div span {
text-align: center;
color: #999;
}
&#13;
<div>
<div><span>Serbian</span><span>100%</span>
</div>
<div><span>Serbian</span><span>50%</span>
</div>
<div><span>Serbian</span><span>25%</span>
</div>
</div>
&#13;
答案 2 :(得分:0)
此代码可能对您有所帮助。
.innerDiv {
height: 100px;
width: 100px;
display: table-cell;
text-align: center;
vertical-align: middle;
border-radius: 50%;
}