用通用适配方案我添加的class为add的div样式就有问题啊,这个怎么弄?

用通用适配方案我添加的class为add的div样式就有问题啊,这个怎么弄?

用通用适配方案我添加的class为add的div样式就有问题啊,这个怎么弄,如果后台直接传html结构过来就是这种

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no">
   <title>Title</title>
   <style>
       * {
           margin: 0;
           padding: 0
}
       .header{
           height: 2.5rem;
           background-color: red;
           border-bottom: 1px solid black;
       }
   </style>
</head>
<body>
<div class="header">22222222</div>
<div class="add" style="height: 50px;background-color: green;font-size: 14px">和哈</div>
<script>
   (function () {
       'use strict';

       // dpr->scale = 1 / dpr
var docEl = document.documentElement,
           viewportEl = document.querySelector('meta[name="viewport"]'),
           dpr = window.devicePixelRatio || 1,
           maxWidth = 540,
           minWidth = 320;

       dpr = dpr >= 3 ? 3 : (dpr >= 2 ? 2 : 1);

       docEl.setAttribute('data-dpr', dpr);
       docEl.setAttribute('max-width', maxWidth);
       docEl.setAttribute('min-width', minWidth);


       var scale = 1 / dpr,
           content = 'width=device-width, initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', user-scalable=no';

       if (viewportEl) {
           viewportEl.setAttribute('content', content);
       } else {
           viewportEl = document.createElement('meta');
           viewportEl.setAttribute('name', 'viewport');
           viewportEl.setAttribute('content', content);
           document.head.appendChild(viewportEl);
       }

       setRemUnit();

       window.addEventListener('resize', setRemUnit);

       function setRemUnit() {
           var ratio = 18.75;
           var viewWidth = docEl.getBoundingClientRect().width || window.innerWidth;

           // console.log(viewWidth);

if (maxWidth && (viewWidth / dpr > maxWidth)) {
               viewWidth = maxWidth * dpr;
           } else if (minWidth && (viewWidth / dpr < minWidth)) {
               viewWidth = minWidth * dpr;
           }

           docEl.style.fontSize = viewWidth / ratio + 'px';
       }
   })();
</script>
</body>
</html>

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕星星 2019-06-10 14:31:49

你好,同学的意思是class为add的元素,style标签中的样式实现不了吗?

http://img1.sycdn.imooc.com//climg/5cfdf8f50001d83912820122.jpg

代码中用的px单位,切换设备的时候需要刷新才可以。

如果换为rem单位就会跟着html标签中的字体大小改变而改变,可以试一下。

如果没有解决同学的问题,可以继续提问,建议描述具体一些,便于准确定位问题所在。

祝学习愉快!

  • 提问者 慕瓜0581623 #1
    class为add的元素有样式,但是感觉高度缩小了一半,字体也看不清,怎么处理这个?
    2019-06-10 14:35:16
  • 好帮手慕星星 回复 提问者 慕瓜0581623 #2
    你好,将单位px改为rem就可以了,这样就可以适应不同的设备。
    2019-06-10 15:09:01
  • 提问者 慕瓜0581623 回复 好帮手慕星星 #3
    有的是后台直接传的html结构就是用的px为单位的。
    2019-06-10 15:17:24
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.WebAPP开发与小程序
  • 参与学习           人
  • 提交作业       622    份
  • 解答问题       6815    个

微信带火了小程序,也让前端工程师有了更多的展现机会,本阶段带你从移动基础知识的学习到webAPP开发,及小程序开发,让你PC端与移动端两端通吃。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师