首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

rem字体大小无法在css动画中正确呈现

rem字体大小无法在CSS动画中正确呈现是因为CSS动画中使用的关键帧动画(@keyframes)是根据元素的初始样式计算的,而rem单位是相对于根元素(html)的字体大小来计算的。在CSS动画中,初始样式是在动画开始之前确定的,而动画期间根元素的字体大小不会发生变化,导致使用rem单位的字体大小无法正确跟随动画变化。

解决这个问题的方法有两种:

  1. 使用媒体查询:可以通过媒体查询在动画开始之前根据屏幕尺寸设置根元素的字体大小,从而使rem单位在动画中正确呈现。例如:
代码语言:txt
复制
@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;
  }
}
  1. 使用JavaScript动态计算字体大小:可以通过JavaScript在动画开始之前获取根元素的字体大小,并将其转换为像素单位,然后将像素单位应用于动画中。例如:
代码语言:txt
复制
@keyframes myAnimation {
  0% {
    font-size: 16px;
  }
  100% {
    font-size: 32px;
  }
}
代码语言:txt
复制
var rootFontSize = parseFloat(getComputedStyle(document.documentElement).fontSize);
var pixelFontSize = rootFontSize * 2; // 假设动画中字体大小是根元素字体大小的两倍

document.documentElement.style.setProperty('--animation-font-size', pixelFontSize + 'px');
代码语言:txt
复制
.my-element {
  animation: myAnimation 1s infinite;
  font-size: var(--animation-font-size);
}

这样就可以在CSS动画中正确呈现rem字体大小了。

推荐的腾讯云相关产品:腾讯云CDN(内容分发网络),详情请参考腾讯云CDN产品介绍。腾讯云CDN可以加速静态资源的传输,提高网页加载速度,适用于各类网站、应用、游戏等场景。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 探究position:fixedcss动画过程的行为~

    补充: 是指transform动画 想要的效果 原本buttom_submit是通过position:fixed; bottom:0px;来定位到底部的, 然后结果显示那里做相同高度的padding的..., 所以还原问题配置 但是动画效果是这样的 有兴趣可以到这里改css试试 那么问题来了 所以动画过程的position:fixed失效了 ?...这时候使用Animations工具了 , Chrome Devtools位置:3 dot -> more tools -> Animations , 设置比较慢的速度 动画的时候按下暂停按钮~鼠标的位置...看来是需要真的了解fixed的布局的实现机制了~ 允许我先Google Google~ 找到了这篇~CSS3 transform对普通元素的N多渲染影响 还有这篇transform你不知道的那些事 剩下的读者继续谷歌吧

    1.7K60

    IT课程 CSS基础 021_值类型、单位、大小、颜色

    数值类型 CSS 不同属性中使用了不同的数值,常用的数值类型如下: 字符串:用单引号或双引号括起来的文本,需确保字符串引号的一致性。 数字:整数或浮点数。如 1024、-100、0.255。...关键字:表示具体含义的词,如auto、initial、inherit等,理解关键字的含义和作用,确保正确使用。 单位 CSS的单位用于表示长度、角度、时间、频率等属性的值。...长度单位: CSS,长度单位用于表示尺寸和距离,可以应用于各种属性,如宽度、高度、边距、填充等。 相对长度单位: em: 相对于父元素的字体大小。...1.5em表示元素的字体大小为其父元素字体大小的 1.5 倍。 rem: 相对于根元素(html元素)的字体大小。1rem等于根元素的字体大小。 ex: 通常用于垂直尺寸,相对于小写字母”x”的高度。....example { transform: rotate(0.5turn); /* 旋转半圈,180度 */ } 时间单位: CSS,时间单位用于表示动画、过渡、动画延迟等属性的时间值。

    9910

    【愚公系列】2023年03月 其他-Web前端基础面试题(CSS_42道)

    它会继承父级元素的字体大小,因此并不是一个固定的值。 remCSS3新增的一个相对单位(root em,根em),使用rem为元素设定字体大小事,仍然是相对大小但相对的只是HTML根元素。...4、区别:IE无法调用那些使用px作为单位的字体大小,而em和rem可以缩放,rem相对的只是HTML根元素。...10、简述rem布局原理 rem是指相对于根元素的字体大小的单位,即根据html元素的font-size来计算大小。...CSS3 的新特性布局方面新增了 flex 布局,选择器方面新增了例如 first-of-type,nth-child 等选择器,盒模型方面添加了 box-sizing 来改变盒模型,动画...8、自定义动画 9、CSS3唯一引入的伪元素是::selection 10、多媒体查询、多栏布局 11、border-image 12、2D转换:transform:translate(

    3.1K20

    为什么你永远不应该在CSS中使用px来设置字体大小

    CSS Tricks 将近十年前就对此进行了详细的解释(简而言之:大多数情况下是错误的),但它似乎仍然某些角落存在。...案例证明:CSS, px , em 或 rem 单位之间没有功能上的区别的想法是一个我一遍又一遍听到的误解,因此我想在这里发帖来解决这个问题。 我们要非常清楚:CSS中使用的单位绝对很重要。...一个像素是显示器上的一个彩色光点;硬件能够呈现的最小可能的“点”。这就是我本节中所说的“字面上的”、“实际的”或“设备”像素;物理世界的一个像素。...因为边框宽度和边距都是 px 设置的,它们保持不变,不会缩放。 但是请注意,如果将CSS的 px 更改为相应的 rem 值,会发现线条和间距确实变大了!...在那之后,我立即改为 rem ,问题得到了解决。 简而言之:媒体查询,除非您确定自己知道浏览器设置自己的字体大小会对用户产生什么影响,否则一定要避免使用 px 。

    1.8K20

    2020 年「我与技术面试那些事儿」

    (触发严格模式或者标准模式,就是HTML标签前声明正确的DTD;触发混杂模式可以HTML文档开始时不声明DTD,或者DOCTYPE前加入XML声明) 4.静态网页是没有数据交互的网页(没有数据库参与...(有动画的网页就是动态网页是错误的认知) 5.DOCTYPE声明位于文档的最前面,位于html标签前,告诉浏览器的解析器用什么文档类型规范来解析这个文档。...DOCTYPE不存在或格式不正确都会导致文档以混杂模式来呈现。 严格模式下以浏览器支持的 最高标准来运行的,在混杂模式,以向后兼容的方式来显示。...14.聊聊rem和em:rem表示相对于根元素的字体大小;em表示相对于父元素的字体大小。...15.css,自适应的单位百分比%,相对于视口宽度的单位vw,相对于视口高度的单位vh,相对于视口宽度或者高度的单位vm。 相对于父元素字体大小的单位em,相对于根元素字体大小的单位rem

    1.3K20

    【云+社区年度征文】全年的技术盘点与总结(含小程序开发)

    (触发严格模式或者标准模式,就是HTML标签前声明正确的DTD;触发混杂模式可以HTML文档开始时不声明DTD,或者DOCTYPE前加入XML声明) 4.静态网页是没有数据交互的网页(没有数据库参与...(有动画的网页就是动态网页是错误的认知) 5.DOCTYPE声明位于文档的最前面,位于html标签前,告诉浏览器的解析器用什么文档类型规范来解析这个文档。...DOCTYPE不存在或格式不正确都会导致文档以混杂模式来呈现。 严格模式下以浏览器支持的 最高标准来运行的,在混杂模式,以向后兼容的方式来显示。...14.聊聊rem和em:rem表示相对于根元素的字体大小;em表示相对于父元素的字体大小。...15.css,自适应的单位百分比%,相对于视口宽度的单位vw,相对于视口高度的单位vh,相对于视口宽度或者高度的单位vm。 相对于父元素字体大小的单位em,相对于根元素字体大小的单位rem

    1.7K341

    能让你受益匪浅的10个css使用技巧

    CSS技巧大杂烩 01 Safari z-index的层级问题 Safari浏览器下(此Safari浏览器包括iOS的Safari,iPhone上的微信浏览器,以及Mac OS X系统的Safari...例如下面的场景,图中红框里面的模块,使用 3D transform变换,进行旋转动画,但是Safari浏览器下,忽略了二维码遮罩层的z-index,结果使用了真实世界的3D视角进行渲染。...解决方法: 然后测试发现,旋转过程(只要未完全旋转90度)点击还是能一切正常的。于是把旋转角度改为了89.99度,一切正常。...09 图片自适应占位方式 当图片未正确加载,或加载完成前,由于图片高度为0,其容器会因为没有内容,导致容器无法撑高而塌陷,而如果加载较慢则会在图片加载完成后出现闪烁的情况。...css,当padding-top/bottom值为百分比时,其值都是以其父元素的宽度为参照对象。

    1.6K20

    如何完成响应式布局,有几种方法?看这个就够了

    往期文章 详解 CSS3最好用的布局方式——flex弹性布局(看完就会) [前端CSS高频面试题]如何画0.5px的边框线(详解) CSS3基础属性大全 CSS3动画属性 animation详解(看完就会...缺点 计算困难 需要计算相对应的百分比值,最主要的是百分比往往只用于设置狂高, 设置其他元素时,根据的对象百分比不同,比如我们设置内外边距的时候,是根据 父级的宽度设置的,更有像border-radius...em/rem               使用方法 em设置字体是根据父级字体的大小设置倍数,rem设置字体是根据固定的根元素字体大小设置倍数。 em,rem通常用于设置字体大小。...rem在这里就不做演示了 他是根据根元素html设置的字体大小 为倍率进行显示,边距同样也是根据根元素大小进行显示,这一点rem要好很多,rem的使用体验要比em好很多,因为他们都有一个统一的倍率,不用单独计算...请看往期文章        详解 CSS3最好用的布局方式——flex弹性布局(看完就会) https://lamian.blog.csdn.net/article/details/127008610

    1.1K30

    CSS尺寸单位介绍

    css的像素只是一个抽象的单位,不同的设备或不同的环境css的1px所代表的设备物理像素是不同的。...早先的移动设备,屏幕像素密度都比较低,如iphone3,它的分辨率为320x480,iphone3上,一个css像素确实是等于一个屏幕物理像素的。...,因为它使用了Retina屏幕,他的dpr是2,所以iPhone 6 的物理像素为 750 1334 不同的屏幕上(普通屏幕 vs retina屏幕),css1px所呈现的大小(物理尺寸)是一致的...20px,子级的1em就是20px 当父级的字体大小为30px,子级的1em就是30px 那么说font-size存在着继承父级的特点 我们第一级html设置font-size,第二级继承第一级,第三级继承第二级...这时候rem出现了 rem remCSS3的一个相对单位(root em,根em) 使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素 只要html的font-size大小不变

    1.5K30

    CSS3 基础知识

    css的body选择器声明Font-size=62.5%,这就使em值变为 16px*62.5%=10px, 这样12px=1.2em, 10px=1em, 也就是说只需要将你的原来的px数值除以...1. em的值并不是固定的;        2. em会继承父级元素的字体大小。     rem:使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素。...这些浏览器会忽略用rem设定的字体大小。...css的body选择器声明Font-size=62.5%,这就使em值变为 16px*62.5%=10px, 这样12px=1.2em, 10px=1em, 也就是说只需要将你的原来的px数值除以...1. em的值并不是固定的;        2. em会继承父级元素的字体大小。     rem:使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素。

    1.8K60

    CSS尺寸单位介绍

    css的像素只是一个抽象的单位,不同的设备或不同的环境css的1px所代表的设备物理像素是不同的。 在为桌面浏览器设计的网页,我们无需对这个津津计较,但在移动设备上,必须弄明白这点。...早先的移动设备,屏幕像素密度都比较低,如iphone3,它的分辨率为320x480,iphone3上,一个css像素确实是等于一个屏幕物理像素的。...,因为它使用了Retina屏幕,他的dpr是2,所以iPhone 6 的物理像素为 750 * 1334 不同的屏幕上(普通屏幕 vs retina屏幕),css1px所呈现的大小(物理尺寸)是一致的...当父级的字体大小为20px,子级的1em就是20px 当父级的字体大小为30px,子级的1em就是30px 那么说font-size存在着继承父级的特点 我们第一级html设置font-size,第二级继承第一级...这时候rem出现了 rem remCSS3的一个相对单位(root em,根em) 使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素 只要html的font-size大小不变

    1.7K20

    「译」如何编写 React 应用程序的样式

    我见过许多工程师,他们实现复杂的状态管理时游刃有余,但在正确应用样式和响应式设计时却面临困难。...考虑正确CSS架构会给一个我们没有合适的工具来处理的项目增加很多不必要的复杂性。我们本质上是实现一种继承形式,但没有我们在编写代码时获得的智能感知。...设计标记是表示设计系统的最小单位的原子值 - 颜色、字体大小、间距、动画以及我们需要重用的所有其他内容。与将视觉和功能(事物)结合在一起的组件库相反,设计令牌只携带样式。...它们旨在抽象出在实现组件时选择正确值的决策,并帮助我们保持一致性。现代浏览器,我们可以使用 CSS 变量来定义这些值。...是的,复杂的 UI、动画和布局始终是一个挑战,但绝大多数 Web 应用程序不需要这些。我们需要的是一种编写CSS的常识性方法,它与我们使用的现有工具很好地结合在一起状态管理方面,我们已经考虑组件。

    9510

    Rem布局的原理解析

    什么是Rem rem和em很容易混淆,其实两个都是css的单位,并且也都是相对单位,现有的em,css3才引入的rem介绍rem之前,我们先来了解下em。...em作为font-size的单位时,其代表父元素的字体大小,em作为其他属性单位时,代表自身字体大小——MDN 我面试时经常问会一道和em有关的题,来看一下面试者对css细节的了解程度,如下,问s1...p {width: 50x} /* 屏幕宽度的50% */ 如果想要页面元素随着屏幕宽度等比变化,我们需要上面的x单位,不幸的是css并没有这样的单位,幸运的是css中有rem,通过rem这个桥梁,...} 下面来验证下上面的计算是否正确,下面的表格是UE图等比缩放下,元素的宽度 UE图宽度 UE图中元素宽度 640px 100px 480px 75px 320px 50px 下面的表格是通过我们的元素不同屏幕宽度下的计算值...+ 4.4+ 另外,使用弹性布局时,一般会限制最大宽度,比如在pc端查看我们的页面,此时vw就无法力不从心了,因为除了width有max-width,其他单位都没有,而rem可以通过控制html根元素的

    1.2K20

    CSS可使用的font-size的长度单位

    如果你希望一个自适应性的网站根据不同的断点设置放大或者缩小不同元素的字体大小,你可以给 html和 body不同断点下设置不同的 font-size。这样其中的元素就都能够缩放了。...其他绝对值单位 CSS也允许其他很多绝对值单位,这些单位在屏幕排版的情况下使用较少,更多是用在传统的打印介质。你可以使用pt或者pc设置打印的字体大小版式。...例,第二个 div是另一个 div之内。因为我们把 div的 font-size设置成 larger,因此增加了嵌套内的第二个容器的 div的字体大小。另外,嵌套对于段落的文字没有效果。...本文讨论的所有单位,视窗单位的浏览器支持是最少的。记住IE11和Edge都不支持vmax单位。 结论 本文里,我们讨论了CSS中使用不同单位长度以及它们各自的不同之处。...相对单位里,你应该在模块当中使用em设置字体大小,给独立模块使用rem单位,例如给一个模块的根元素使用rem。你也可以结合使用视窗单位和其他单位,来保证你的排版会随着视窗宽高变化而自动适应。

    2.4K20

    CSS基础-属性值单位:px, em, rem, %

    CSS,尺寸单位是决定元素大小的关键。正确选择和应用单位不仅关乎布局的美观,还直接影响到网站的响应式设计和可访问性。...早期Web设计,px是使用最为广泛的单位,因为它提供了稳定的显示效果。 常见问题与避免 问题:固定像素值不同设备和屏幕密度下的表现不一致,影响响应式设计。...避免:尽量靠近根元素的地方设置em值,减少嵌套层数,或者使用rem单位替代。...常见问题与避免 问题:忽略设置根元素的字体大小,导致rem单位失去意义。 避免:始终CSS初始化明确设置html的字体大小,以便于控制整个页面的缩放比例。...它广泛应用于创建流体布局,特别是响应式设计,可以随着窗口大小的变化而自动调整元素尺寸。 常见问题与避免 问题:百分比值可能导致布局不稳定,尤其是复杂的嵌套结构

    46010

    来看看 px、em、rem的介绍和使用吧!

    px特点 IE无法调整那些使用px作为单位的字体大小; 国外的大部分网站能够调整的原因在于其使用了em或rem作为字体单位; Firefox能够调整px和em,rem,但是有大部分的国产浏览器使用IE内核...为了简化font-size的换算,需要在css的body选择器声明Font-size=62.5%,这就使em值变为 16px * 62.5%=10px, 这样12px=1.2em, 10px=1em...所以我们CSS的时候,需要注意两点: body选择器声明Font-size=62.5%; 将你的原来的px数值除以10,然后换上em作为单位; 重新计算那些被放大的字体的em数值。...比如: #content 声明了字体大小为1.2em,那么声明 p 标签的字体大小时就只能是1em,而不是1.2em, 因为此em非彼em,它因继承 #content 的字体高而变为了1em=12px...REM rem 相对于根元素 ,这样就意味着,我们只需要在根元素确定一个参考值。 remCSS3新增的一个相对单位(root em,根em),这个单位引起了广泛关注。

    76920
    领券