无法居中对齐 div 的动态内容

Unable to align the dynamic content of a div in center

我正在开发一个使用 flipclock.js

的小柜台

我每两秒检查一次唯一身份访问者的数量,如果数量增加,计数器就会增加并翻转。早些时候,我使用的是页面加载时从数据库中获取的单个值。我使用的是包含在中心标记中的 div,例如

<center> 
      <div id= "counter"> <?php echo $count;?</div>
</center>   

该值正好在 div 的中心。但是现在,由于我每 2 秒获取一次更新的用户数量并且还使用了 flipclock,因此该数字没有居中对齐。我可以通过使用 css 修改边距来在中心对齐一个静态数字,但是当数字达到像 10000000 这样的大值时它看起来不太好。现在在使用 flipclock 之后,代码是

<div id="counter"  class="flip-clock-wrapper">
    <ul class="flip  play">
        <li class="flip-clock-before">
            <a href="#"><div class="up"><div class="shadow"></div><div class="inn">1</div></div><div class="down"><div class="shadow"></div><div class="inn">1</div></div></a>
        </li>
            <li class="flip-clock-active">
                <a href="#"><div class="up"><div class="shadow"></div><div class="inn">1</div></div><div class="down"><div class="shadow"></div><div class="inn">1</div></div></a>
            </li>
    </ul>

    <ul class="flip  play">
        <li class="flip-clock-before">
            <a href="#"><div class="up"><div class="shadow"></div><div class="inn">9</div></div><div class="down"><div class="shadow"></div><div class="inn">9</div></div></a>
        </li>

        <li class="flip-clock-active">
            <a href="#"><div class="up"><div class="shadow"></div><div class="inn">0</div></div><div class="down"><div class="shadow"></div><div class="inn">0</div></div></a>
        </li>
    </ul>
</div>

这看起来像

无论数字大小,我都希望它居中。数字是动态的,随着时间的推移而变化。

谢谢!

您可以使用 transform 技巧将动态内容水平居中。 (还有其他方法可以做到这一点,但我认为这是最简单的——尤其是在使用你不熟悉的库时——就 CSS)

如果将计数器 div 包装在容器 div 中,则可以应用以下 CSS:

position: absolute;
left: 50%;
-ms-transform: translateX(-50%);
-moz-transform: translateX(-50%);
-webkit-transform: translateX(-50%);
transform: translateX(-50%);

但是,由于这是绝对定位,它会将元素从文档流中移除。
如您所见,下面的示例在不将元素从文档流中移除的情况下实现了相同的效果,但稍微复杂一些。

/*
  This becomes the same height as .container but spans the entire document
  so the content is pushed below the .container element.
*/
.container-outer {
  display: block;
  overflow: hidden;
}

/*
  This forcibly aligns its contents to the center of itself.
*/
.container {
  position: relative;
  float: left;
  
  left: 50%;
  -ms-transform: translateX(-50%);
  -moz-transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
}

/* SAMPLE CONTENT - IGNORE */
.sample {
  display: block;
  width: 50px;
  height: 50px;
  background-color: #4CAF50;
}
<div class="container-outer">
  <div class="container">
    <div class="sample"></div>
  </div>
</div>

<!-- As you can see, this sample outside of the container is pushed below the centered element. -->
<div class="sample"></div>

编辑:CSS-Tricks 做了一个很棒的居中指南,您可以参考:
https://css-tricks.com/centering-css-complete-guide/