图片模糊。

图片模糊。

<!DOCTYPE html>

<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->

<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->

<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->

<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->

    <head>

        <meta charset="utf-8">

        <meta http-equiv="X-UA-Compatible" content="IE=edge">

        <title>首页</title>

        <meta name="description" content="">

        <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=0">

        <script src="../lib/cssrem.js">

        (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 = 30;

        var viewWidth = docEl.getBoundingClientRect().width || window.innerWidth;



        if (maxWidth && (viewWidth / dpr > maxWidth)) {

            viewWidth = maxWidth * dpr;

        } else if (minWidth && (viewWidth / dpr < minWidth)) {

            viewWidth = minWidth * dpr;

        }


        docEl.style.fontSize = viewWidth / ratio + 'px';

    }

})();</script>

        <link rel="stylesheet" href="">

        <link rel="stylesheet" href="../lib/reset.css">

        <link rel="stylesheet" href="./header/header.css">

    <style>

        .header{

    position: relative;

}

.header  .header-img{

    width: 100%;

    height:4.45rem ;

}

    </style>

    </head>


    

    <body>

        <!--[if lt IE 7]>

            <p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="#">upgrade your browser</a> to improve your experience.</p>

        <![endif]-->

        <!-- 头部开始 -->

        <div class="header">

            <div class="seach-bar">

                <div class="bar-location">

                    <div class="location-icon"></div>

                    <div class="location-text">长春市</div>

                </div>

            </div>

            <div class="seach-btn">

                <p class="place-holder">鸡翅</p>

            </div>

            <img class="header-img" src="https://app.nihaoshijie.com.cn/upload/bannertemp.e8a6fa63.jpg" alt="">

        </div>

                <!-- 头部结束 -->

        <script src="" async defer></script>

    </body>

</html>


正在回答

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

2回答

同学你好,适配可以理解为在不同的设备下,根元素字体大小会相对应的改变,rem会参照根元素字体进行计算,不同设备下,根元素字体改变,元素的宽高也改变,从而实现了适配。

显示到页面上的大小:例如同学插件的font-size设置的是16px,那么给元素宽度设置为32px,会被转换成2rem(32/16=2),如果html的font-size为25px,那么元素显示到页面上的宽度为50px(25*2)

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

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

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

好帮手慕久久 2020-08-22 14:24:36

同学你好,由于给图片设置的高度与宽度不成比例,所以图片变形了。

图片的原始尺寸是750*340的,即在750px的设计稿下,它是340px的宽的。在同学的这个页面下,html的fontsize大小是25px,如下:http://img1.sycdn.imooc.com//climg/5f40b87009aecb4f07880185.jpg

而当前视口宽和设计稿是一样的,也是750px:

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

所以在同学的这个页面下,图片的rem值,应该是“图片的高度/html的fontsize”,即340/25=13.6rem,如下:

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

由于同学设置了视口缩放,而且ratio设置成了30,所以各个元素尺寸的rem值,与视频中老师的值是不一样的,同学要重新计算。

由于没有具体的设计稿,同学算起来会有些费劲,因此建议同学使用视频中老师的适配方案,这样你的元素尺寸才会与老师的一样,学习起来会更顺利些。

如果我的回答帮到了你,欢迎采纳,祝学习愉快!

  • 老师是不是我可以李杰文rem适配是 页面宽/编辑软件设置的rem=js插件的rem
    2020-08-24 15:19:33
  • rem适配的含义就是根据初始页面的设置缩放,我的初始页面过大,跟着缩放的也就过大 这两个理解对吗
    2020-08-24 15:21:28
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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