如何响应地将文本置于<div>内

时间:2017-01-18 14:08:01

标签: html css responsive-design

我有<div>,其中包含三个<div>个。 在每个<div>元素中都有<p>元素,其中包含文本和2个嵌套元素,以生成径向进度条。我需要的是将文本放在圆圈的中间,并使用纯CSS响应。我需要这样的东西:

Wanted result

该代码存在缺陷,例如<p>内的<span>,但我会在新版本的帮助下修复它。

&#13;
&#13;
.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;
&#13;
&#13;

另见jsFiddle

3 个答案:

答案 0 :(得分:0)

经过长时间研究这个问题后,我找到了一个通用的解决方案来解决这种问题。我为此感到自豪,简单而优雅:)

.center-element{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

希望它有所帮助,任何疑问都让我知道。干杯队友:))

答案 1 :(得分:0)

您可以将border-radius的div设为50%。之后,您可以使用柔性显示器以垂直和水平方向居中。

HTML

&#13;
&#13;
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;
&#13;
&#13;

答案 2 :(得分:0)

此代码可能对您有所帮助。

 .innerDiv { 
  height: 100px;
  width: 100px;
  display: table-cell;
  text-align: center;
  vertical-align: middle;
  border-radius: 50%;
  }