小米浏览器图片不显示问题

在开发 webview 过程中遇到一个问题, 类名 wechatImg 的 div 通过 background 引入的一张图片无法在小米的手机浏览器上显示. 遇到这个问题时十几种pc 浏览器,7\8种 mobile 浏览器都通过了测试,唯独在小米的移动端无法展示.

    <div className='footerStyle '>
      <div className='footer-main'>
        <div className='copyright'> Copyright &copy;2023 北京****有限公司</div>
        <div className='weixin'>
          <div className={`wechatImg ${isHovering ? 'hover' : ''}`}
            onMouseEnter={() => setIsHovering(true)}
            onMouseLeave={() => setIsHovering(false)} >
          </div>
        </div>
        {isHovering && (<img src={weixinIMG} className="qr-code"></img>)}
        <div className='icp' onClick={jump}>
          <span className='police' />京ICP备2024********
        </div>

      </div>
    </div>

查了很多社区和资料,都没有结果;
用控制变量法调试, 用了一上午时间最终终于好用了

        <div className='weixin'>
          {/* span 解决小米莫名bug,第一个像素不显示  */}
          **<span></span>**
          <div className={`wechatImg ${isHovering ? 'hover' : ''}`}
            onMouseEnter={() => setIsHovering(true)}
            onMouseLeave={() => setIsHovering(false)} >
          </div>
        </div>

问题发生在 className=‘weixin’ 的div 的第一个元素,无论是什么都不能正常显示,我以上代码样式用在移动端768px以下的情况. 最后通过添加空标签, 才让图片正常展示出来;(有尝试过wexin 关键字符的影响,无用)

分析:
在元素前添加一个空的 span 标签来解决小米手机不显示 .wechatImg 元素内容的问题,这可能代表了一个特定的渲染或重排(repaint/reflow)行为在小米手机的浏览器上。这种情况可能的原因包括:

渲染引擎差异:
不同的浏览器或设备可能因为它们的渲染引擎不同,导致它们对特定情况的处理也不同。小米的浏览器可能使用了与Chrome、Firefox或Safari等主流浏览器不同的渲染引擎或版本,从而产生了这个特有的bug。

CSS渲染缺陷:
在某些情况下,浏览器在解析或渲染CSS时可能会遇到缺陷或错误。在这种情况下,span 标签的添加可能触发了DOM的更新和重新排列,对样式系统造成了"摆脱固有状态"的影响,促使浏览器重新计算布局并正确渲染 .wechatImg。

延迟加载或懒加载问题:
如果小米的浏览器对于懒加载或延迟加载图像有其自身的优化策略,可能导致在没有足够内容去促进元素加载的情况下,图像不被加载。span 标签可能提供了这样的上下文或足够的DOM体量,促使浏览器认为加载图片是必要的。

浏览器的BUG:
这可能是小米手机浏览器的一个特殊bug,可能与其渲染引擎的具体实现有关,也可能与其内部的优化策略或BUG有关。

DOM渲染顺序:
某些浏览器可能在处理空或伪装元素时有不同的优化策略。span 标签的引入可能改变了DOM元素的排列或渲染顺序,从而解决了问题。

这些都是一些可能的解释,而没有进一步的信息(比如特定的浏览器版本、重现问题的步骤等)和调试,难以确定具体的原因。

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值