【问题标题】:How do I responsively center text inside of a <div>如何在 <div> 内响应居中文本
【发布时间】:2017-06-02 23:01:36
【问题描述】:

我有一个包含三个&lt;div&gt;s 的&lt;div&gt;。 在每个&lt;div&gt; 元素中都有一个&lt;p&gt; 元素,其中包含文本和2 个嵌套元素以形成径向进度条。我需要的是把文本放在圆圈的中间,并使用纯 CSS 响应式地做。我需要这样的东西:

代码有缺陷,比如&lt;span&gt; 中的&lt;p&gt;,但在你们提供的帮助下,我正在新版本中修复它。

.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%;
}
<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>

另请参阅jsFiddle

【问题讨论】:

标签: html css responsive-design


【解决方案1】:

在针对这个问题研究了很长时间后,我找到了一个通用的解决方案来解决这种需求。我为它感到自豪,简单而优雅:)

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

希望对您有所帮助,如有任何疑问,请告诉我。干杯队友:)

【讨论】:

    【解决方案2】:

    您可以制作一个边框半径为 50% 的 div。之后,您可以使用 flex display 垂直和水平居中。

    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;
    }
    <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>

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-09-16
        • 2018-05-03
        • 1970-01-01
        • 2019-01-02
        • 2014-09-10
        • 2019-08-12
        • 1970-01-01
        • 2018-09-27
        相关资源
        最近更新 更多