zoukankan      html  css  js  c++  java
  • 华为mate10 pro内置浏览器出现的令人头疼的样式兼容问题

      问题描述:

       下图红色框区域内容在华为mate10 pro(以下简称mate10)内置浏览器中整体向左偏移,没有居中,其它手机浏览器都无该问题,如下图

      

      

      问题分析

       经过一番追根溯源,我发现是 box-sizing: border-box;属性影响到了,该属性是让元素使用css盒子模型的怪异模式,

       简单来说不会把borderpadding算入元素宽度中;而css盒子模型标准模式: box-sizing: content-box; 

       则会把borderpaading算到元素的宽度中,从而使元素总宽度增加

       若把box-sizing: border-box;直接改为box-sizing: content-box;后华为mate10内置浏览器是没问题了,

       但其它原本没有该问题的手机都会出现上图红色框内容整体向左偏移的问题,这让我陷入了两难

      解决方案

       首先从华为mate10设置中找到内置浏览器UA信息

      

       接着使用正则表达式对它进行识别,若检测到是华为手机,则使用js单独为其添加box-sizing: content-box;属性 ,从而解决该问题

      关键代码

        function cssFixForHuawei() {
                    var ua = navigator.userAgent,
                        rechargeBgEle = document.getElementsByClassName("recharge-bg")[0],
                        rechargeListContentEle = document.getElementsByClassName("recharge-list-content")[0];
                    if (true === /huawei/ig.test(ua) ) {
                        rechargeBgEle.style.width = "3.7rem";
                        rechargeBgEle.style.boxSizing = "content-box";
                        rechargeListContentEle.style.boxSizing = "content-box";
                    }
                }

      附:我以前写过一篇博文box-sizing:border-box的作用,有兴趣的小伙伴可以看看

  • 相关阅读:
    JDE函数--获取当前登录人的描述
    JDE报表开发笔记(R5537011 收货校验统计表)
    JDE函数--GetUDC(B函数)
    JDE隐藏Constant等(Hide Object)
    Oracle “dba_tables”介绍
    word2013设置页面边框
    makefile--#的不正确使用
    CICS定时
    程序的命名
    UE上传到FTP,会多出些字符
  • 原文地址:https://www.cnblogs.com/tu-0718/p/11857240.html
Copyright © 2011-2022 走看看