在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
工作中碰到个奇怪的问题,折腾了大半天,终于算是解决了,这里把分析思路和解决办法记录下。 项目是做响应式的公司官网,前期的静态图页面切完后就提交给后台作为模板使用了,我也就基本退出项目。 在后端落地时发现在在移动端页面显示不太对劲,显得很模糊。第一想法是meta的头部被覆盖了,查看源代码果然发现是被覆盖了。 这是我习惯用的meta头部,使页面宽度根据设备宽度自适应变化 <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" /> 可是后端落地的框架是按模板直接引入的,有部分的公共资源竟然也包含了设置viewport的meta。后端引入的是这个样子的: <meta name="viewport" id="viewport" content="width=640px, user-scalable=no"> 这一头部是被一段不得不被加入的js文件所append进入的,而且被明确告知,该js文件不可以被修改!所以这一设置宽度为固定640px的将我原本设置随设备宽度变化的meta覆盖了! 问题就来了,静态页面已经完成,且由于历史代码因素,有相当部分的代码在当初并没有使用rem单位,已经无法大规模修改css效果了。只有通过js重置设置viewport宽度再次进行覆盖了......这倒是挺简单的,无非就是代码相当的丑陋而已。 但又一个问题来了,这个官网页面还动态引入了iframe页面,这些iframe页面是固定的640px宽度。这就很崩溃了!我加了随设备宽度变化的mata,那么这些iframe就不能看了;我不再次加meta,那么官网本身就不能看了! 好在这些iframe是通过统一的方法引入,虽然不能更改引入方法的js文件,但在业务代码中再次监听倒也还可以。所以再次这个绑定点击事件,判断iframe是否被引入后,就是使用某些特殊方法的时候了! css3有个 通过计算 事情到这里就结束了吗?不!还没有!iframe是缩放了,可高度也被缩放了,内容显示不完整了。这里设置 以为结束了?并没有!还有问题存在!iframe层被 翻看css手册发现了一个熟悉又陌生的属性 transform-origin: x-axis y-axis z-axis; 它有3个属性值,分别代表定义视图被置于X、Y、Z轴的何处。 他乡遇故知,久旱逢甘霖!要的就是你啊!设置 其实吧,这个属性很早就被用到了,只不过我最开始写的是缩写 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持极客世界。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论