css - 移动端渲染尺寸问题

查看:93
本文介绍了css - 移动端渲染尺寸问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

工作中发现了这么一个现象,比如说这么一个效果:

很常见的箭头对吧,然后我用如下的CSS将它写出来:

<!-- 有很多个span标签 -->
<span></span>
<span></span>
...
<span></span>
<span></span>

/* CSS */
span {
    display: block;
    position: absolute;
    top: 50%;
    right: .6rem;
}

span::before,
span::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    width: .55rem;
    height: .075rem;
    background: #9694a1;
    -webkit-transform-origin: right center;
            transform-origin: right center;
}

span::before {
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
}

span::after {
    -webkit-transform: rotate(-45deg);
            transform: rotate(-45deg);
}

理论上来说,结果应该是这样的:

只是将第一张图重复了很多次而已,但实际上,无论从PC浏览器还是手机浏览器里面看,却是下面这样的:


PC浏览器截图

手机浏览器截图

结果有粗有细,然而它们用的都是同一个样式。

下图也出现了同样的问题,两个圆用的都是同一套样式,但上面的圆是正常的,下面的圆明显被上下拉长了。

上图样式如下:

.check_box {
    position: relative;
    display: block;
    width: 1rem;
    height: 1rem;
    background: #353340;
    box-sizing: border-box;
    border: 1px solid #9694a1;
    border-radius: 50%;
}

个人猜测可能是因为浏览器在从rem计算成px的过程中出现了问题?求前辈们告知~谢谢。

————————————————————————————————————————
2017/4/14 16:46补充:
计算根元素font-size代码

var w = document.documentElement.clientWidth,
    fs = w < 640 ? w / 18.75 : 640 / 18.75;

document.documentElement.style.fontSize = fs + "px";

解决方案

今天又遇到这个~顺便研究了下,发现该问题之存在于安卓的微信内置浏览器和UC浏览器等,目前得出的结果基本符合我上面的猜测,我把小箭头的高度从.075rem改成2px以后,就没有这个问题了~虽然问题暂时解决了,不过深层次的原因还有待研究。

这篇关于css - 移动端渲染尺寸问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆