我用的是自定义字体。设计不允许我改变字体。
当数字变化时,由于数字宽度的不同,后面的内容会被推来推去。
有没有办法让所有的数字都一样宽?我不想指定span
组件的宽度,因为我需要它是内联的,宽度应该由它的位数决定。
const numberDom = document.querySelector('.number');
let number = 0;
function tick() {
number += 1;
numberDom.innerText = number;
}
setInterval(tick, 50);
p {
font-size: 1rem;
}
.number {
font-family: 'Carter One', cursive;
font-size: 1.5rem;
color: #365;
}
.number::after {
content: 'pt';
font-size: 0.75em;
margin-left: 0.1em;
color: #587;
}
<link href="https://fonts.googleapis.com/css?family=Carter+One&display=swap" rel="stylesheet">
<p>You got <span class="number"></span>, good job!</p>
3条答案
按热度按时间ruarlubt1#
将您的编号类别更改为:
eit6fx6z2#
好的,首先我做了一个函数,它改变了你的
<p>
的外观。在那之后,我能找到的唯一解决方案是停止抖动是把数字放进一个inline-block
。这是我的fiddle
编辑
我做了一个脚本,它改变了
inline-block
的width
。这是一个if语句,如果你的数字是1000或更高,width
就会改变。Fiddle
你总是可以做一个
else if
超过10000等等。new9mtju3#
你可以用
它将修复数字跳跃/高度异常问题。使用任何等宽字体作为字体系列,你会解决这个问题。