当前位置: 首页 > 面试题库 >

Safari在运行不相关的动画时更改字体粗细

裘兴思
2023-03-14
问题内容

我在页面上使用css动画,并且运行动画时,Safari似乎会更改页面其他位置无关的字体​​权重。知道为什么会这样吗?所有其他浏览器都可以正常运行,包括Chrome等Webkit。

该站点也位于此处但它可能会一直在迅速变化。

我在箭头图标上使用了指南针(@ transition-property,@ transition-
duration)。闪烁的标题上未应用任何过渡。在Mac上-可能是硬件加速,但我仍在尝试解决。


问题答案:

当您触发GPU合成(例如,通过CSS动画)时,浏览器将该元素发送到GPU,但是如果元素的top /
left属性被更改,则该元素还会显示在该元素的顶部。这包括动画后出现的所有position:relative元素。

解决方案是赋予动画元素position:relative和z-
index,将其置于其他所有元素之上。这样,您就可以获取动画,但可以在不相关的元素上保留(高级IMO)亚像素字体渲染。

更新:
较新版本的Chrome保留了GPU复合元素上的亚像素抗锯齿功能,只要该元素不透明即可,例如背景不透明或半透明的像素。请注意,边界半径之类的东西会引入半透明像素。



 类似资料:
  • 问题内容: 在我的上一个网站上,该文本在chrome和firefox上自然是完美的,而无需触摸字体平滑或其他任何内容。 但是在Mac / Safari 7上,文本看起来很好,然后立即变细(太细/不好看)。 在此处输入图片说明 在此处输入图片说明 经过一些研究和一些测试 看起来Safari首先显示带有以下内容的文本: 然后,在获得闪烁效果后,将字体变为: 所以在我看来,我别无选择,只能强迫 使我的网

  • 我可以用代码设置文本粗体: 是的,cell有粗体风格,但它有另一种字体。它有(尺寸:11)。如果我创建没有样式的单元格,我会得到这个单元格:(大小:10)。 好吧,那我试试别的方法: 没有区别。我得到(尺寸: 11)。 但为什么呢?我怎样才能修复它?我希望所有单元格(加粗或不加粗)具有相同的字体名称和大小。我不想手动设置字体。

  • 问题内容: 每月都会生成此表。基本上所有 月度 表的表结构都是相同的。 由于仅使用不同的表名来映射同一实体将需要大量工作, 由于实体的表名毕竟具有相同的表结构,是否可以按以下方式更改实体的表名? 如果没有,您可以建议什么方法? 问题答案: 由于实体的表名毕竟具有相同的表结构,是否可以按以下方式更改实体的表名? 这实际上是不可能的,至少对于标准JPA(这不是我对非标准JPA所做的)至少不是这样,如在

  • 我做了一个动画为一些元素(图像和按钮)淡入淡出使用不透明度。除了Safari之外,它在所有浏览器上都能完美地工作。当我尝试在Safari中运行它时,我的所有元素都有100%的不透明度,没有任何动画可以看到… 来自button元素的示例: 以下是我的HTML: 和我的CSS:

  • 我错过了什么? 为了便于阅读,这里提供了一个要点,并附带了一个测试用例:https://Gist.github.com/teyc/5668517

  • 我正在工作的HTML5横幅有很多CSS3动画。为了制作可重用的关键帧动画,我在单个元素上使用了多个动画。除了Safari之外一切都很顺利。 CSS: jsfiddle链接 可行的解决方案: 用另一个/更多元素包装该元素&为每个元素添加单个动画。此解决方案需要为包装器元素设置额外的样式。 将多个动画合并为一个&此解决方案增加了的复杂性,并且对于复杂的动画不容易维护。 根据另一个stackOverfl