无法居中对齐 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/
我正在开发一个使用 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/