如何响应式地将文本居中在 <div> 中? [英] How do I responsively center text inside of a &lt;div&gt;

查看:16
本文介绍了如何响应式地将文本居中在 <div> 中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个

包含三个

.在每个 <div> 元素中,有一个

元素,带有文本和 2 个嵌套元素,用于制作径向进度条.我需要的是将文本放在圆圈的中间,并使用纯 CSS 响应式地进行.我需要这样的东西:

代码有缺陷,比如 位于 中,但我正在新版本中修复它,并在你们提供的帮助下.

.radius-container div {-webkit-box-flex: 1;-ms-flex: 1;弹性:1;}.radius-container div:first-child {右边距:1%;}.半径 {填充顶部:11em;高度:30em;文本对齐:居中;边框:1px 实心 #858280;显示:块;边界半径:50%;宽度:100%;}.radius3 {位置:相对;填充顶部:10%;高度:15em;宽度:50%;文本对齐:居中;边框:1px 实心 #858280;左边界:0;边框底部:0;边框右上角半径:100%;显示:块;左边距:15em;}.radius3 p {位置:绝对;正确:50%;顶部:65%;}

<div><span class="radius"><p>塞尔维亚语<br>100%</p></span></div><div><span class="radius"><p>ENGLISH<br>100%</p></span></div><div><span class="radius3"><p>德语<br>25%</p></span></div>

另见这个jsFiddle

解决方案

经过长时间的研究这个问题,我找到了一个通用的解决方案来解决这种需求.我以它为荣,简单而优雅:)

.center-element{位置:绝对;顶部:50%;左:50%;变换:翻译(-50%,-50%);}

希望对您有所帮助,如有任何疑问,请告诉我.干杯伙计:)

I have a <div> that contains three <div>s. In each of those <div> elements is a <p> element with text and 2 nested elements to make a radial progress bar. What I need is to put the text in the middle of the circles, and do it responsively using pure CSS. I need something like this:

The code has flaws, like that <p> inside of a <span> but I am fixing it in the new version with the help you guys provide.

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

See also this jsFiddle

解决方案

After researching for long time for this issue, I found an generic solution which solves this kind of requeriments. I am proud of it, simple and elegant :)

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

Hoping it helps, any doubt let me know. Cheers mate :)

这篇关于如何响应式地将文本居中在 <div> 中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆