rem字体大小无法在CSS动画中正确呈现是因为CSS动画中使用的关键帧动画(@keyframes)是根据元素的初始样式计算的,而rem单位是相对于根元素(html)的字体大小来计算的。在CSS动画中,初始样式是在动画开始之前确定的,而动画期间根元素的字体大小不会发生变化,导致使用rem单位的字体大小无法正确跟随动画变化。
解决这个问题的方法有两种:
@keyframes myAnimation {
0% {
font-size: 1rem;
}
100% {
font-size: 2rem;
}
}
@media screen and (max-width: 768px) {
html {
font-size: 16px;
}
}
@media screen and (min-width: 769px) {
html {
font-size: 20px;
}
}
@keyframes myAnimation {
0% {
font-size: 16px;
}
100% {
font-size: 32px;
}
}
var rootFontSize = parseFloat(getComputedStyle(document.documentElement).fontSize);
var pixelFontSize = rootFontSize * 2; // 假设动画中字体大小是根元素字体大小的两倍
document.documentElement.style.setProperty('--animation-font-size', pixelFontSize + 'px');
.my-element {
animation: myAnimation 1s infinite;
font-size: var(--animation-font-size);
}
这样就可以在CSS动画中正确呈现rem字体大小了。
推荐的腾讯云相关产品:腾讯云CDN(内容分发网络),详情请参考腾讯云CDN产品介绍。腾讯云CDN可以加速静态资源的传输,提高网页加载速度,适用于各类网站、应用、游戏等场景。
领取专属 10元无门槛券
手把手带您无忧上云