CSS错误引发App崩溃:rem引发的意外Bug
15 浏览量
更新于2024-08-31
收藏 197KB PDF 举报
本文主要讨论了一种罕见的CSS编写方式,可能导致应用程序(app)崩溃的情况。作者分享了自己的一次亲身经历,他在个人公众号上提到过利用CSS进行XSS攻击的话题,但并未深入研究。然而,这次事件引发了作者对一个因CSS代码引发app崩溃的关注。
邮件中的事件揭示了一个特定CSS代码段,涉及到`@-webkit-keyframes`和`.anim`类的动画效果,特别是使用`rem`单位。当CSS代码包含以下部分时:
```css
@-webkit-keyframes crashChrome {
0% {
-webkit-transform: translateX(0rem);
}
}
.anim:before {
content: "";
width: 3rem;
height: 3rem;
border-radius: 3rem;
position: absolute;
left: 5rem;
top: 5rem;
background-color: #06839f;
-webkit-animation: crashChrome;
}
```
浏览器在处理这些动画时,特别是对于低端设备,可能会遇到性能瓶颈。问题的关键在于`rem`单位,它依赖于视口的像素大小,当动画的尺寸计算依赖于视口时,可能会导致在某些条件下渲染或计算错误,进而引发app崩溃。
作者通过逐步排查,包括查看源文件、使用开发者工具(如花瓶抓取CSS文件)和查阅Chromium项目的bug报告(<https://bugs.chromium.org/p/chromium/issues/detail?id=364222>),最终确定了问题所在。这表明,在实际开发中,开发者需要谨慎处理动画和单位选择,尤其是在处理跨设备兼容性和性能优化时,避免类似问题的发生。
这篇文章提醒开发人员注意CSS的潜在风险,并强调了细致的代码审查和性能测试的重要性,以确保应用程序的稳定性和用户体验。
225 浏览量
2023-04-20 上传
2021-03-06 上传
2021-05-18 上传
2021-03-15 上传
2021-03-13 上传
2021-02-14 上传
2021-03-30 上传
2021-03-16 上传
weixin_38595243
- 粉丝: 7
- 资源: 896
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库