为什么真机测试和浏览器测试结果不一样

来源:3-2 作业题

迷失的小麦

2020-03-13 12:00:12

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no, maximum-scale=1, minimum-scale=1">
<link rel="stylesheet" href="css/base.css">
<link rel="stylesheet" href="css/grid-flex.css">
<link rel="stylesheet" href="css/index.css">
<title>无标题文档</title>
</head>

<body>
<!--头部及导航栏-->
<header class="header">
	<div class="container">
		<div class="row">
			<div class="col-12 d-md-none iphone6-nav">
				<a href="#">imooc</a>
				<button type="button" class="nav-btn" id="btn-toggle"></button>
			</div>	
			<div class="col-12 d-none d-md-block ipad-nav">
				<ul class="ipad-nav-box">
					<li class="ipad-nav-item"><a href="#">前端</a></li>
					<li class="ipad-nav-item"><a href="#">java</a></li>
					<li class="ipad-nav-item"><a href="#">ios</a></li>
					<li class="ipad-nav-item"><a href="#">Android</a></li>
					<li class="ipad-nav-item"><a href="#">php</a></li>
				</ul>
			</div>
		</div>
	</div>
	<div class="container nav-box">
		<div class="row">
			<div class="col-12 d-md-none iphone6-nav-box">
				<ul class="iphone6-nav-html" id="nav">
					<li class="iphone6-nav-item"><a href="#">前端</a></li>
					<li class="iphone6-nav-item"><a href="#">java</a></li>
					<li class="iphone6-nav-item"><a href="#">ios</a></li>
					<li class="iphone6-nav-item"><a href="#">Android</a></li>
					<li class="iphone6-nav-item"><a href="#">php</a></li>
				</ul>
			</div>
		</div>
	</div>	
</header>
<!--第一区域-->	
<div class="first">
	<div class="container">
		<div class="row">
			<div class="col-12 first-connent">
				<img src="img/1.png" alt="1" class="first-img">
				<p class="first-text">IMOOC</p>
				<button type="button" class="first-btn">start</button>
			</div>
		</div>
	</div>
</div>	
<!--第二区域-->
<div class="second container">
	<div class="row">
		<div class="col"><a href="#">关于慕课网</a></div>
		<div class="col"><a href="#">关于课程</a></div>
		<div class="col"><a href="#">核心团队</a></div>
		<div class="col"><a href="#">新增专题</a></div>
	</div>
</div>
<!--第三区域-->
<div class="container third">
	<div class="row">
		<div class="col-12">
			<div class="third-text">
				<h4>响应式</h4>
				<p>当今最领先的响应式自助建站平台,我们的流线式网页布局设计方案和可视化图文内容编辑模式让网站制作和维护成为一件轻松惬意的事。无论您是普通互联网用户,还是专业网站制作人员,都能使用起飞页设计出最具专业水准的网站。想创建一个简单的单页式站点,还是一个专业的公司网站,亦或是一个别具一格的博客?起飞页可以满足您的所有需求。我们是响应式网站的倡导者,所有前端页面代码均采用HTML5和CSS3实现。起飞页提供了海量精美网站模板和成品网站,几乎覆盖了当今各个行业,您只需在模板上进行少量修改,即可完成自己的网站,这一切都是免费的。</p>
			</div>
		</div>
	</div>
</div>
<!--第四区域-->

<script src="js/flexible.js"></script>
<script src="js/index.js"></script>
</body>
</html>
@charset "utf-8";
/* CSS Document */
*{box-sizing: border-box;}
/*body{width: 100%;height: 100%;background-color: red;}*/
/*header*/
.header{width: 100%;height: 4rem;background-color: #7da7ae;}
/*iphone6*/
.iphone6-nav{position: relative;}
.iphone6-nav a{text-align: center;line-height: 4rem;height: 4rem; color: white;font-size: 1.6rem;display: block;}
.nav-btn{width: 1.6rem;height: 1.6rem;position: absolute;top: calc(50% - 0.8rem);right: 1rem;border: 2px solid #acc7cf;background-color: #7da7ae;}
.nav-btn[data-dpr="2"]{border-width: 4px;}
.nav-btn[data-dpr="3"]{border-width: 6px;}
/*ipad*/
.ipad-nav-box{display: flex;}
.ipad-nav-item{flex: auto;line-height: 4rem;height: 4rem;text-align: center;}
.ipad-nav-item a{color: white;font-size: 1.4rem;}
.ipad-nav-item a:hover{color: #acc7cf;}

/*nav*/
.nav-box{width: 100%;position: absolute;top: 4rem;padding: 0;}
.iphone6-nav-html{overflow: hidden;height: 0;width: 100%;transition: height 0.7s;}
.iphone6-nav-item{width: 100%;height: 3.6rem;text-align: center;line-height: 3.6rem;color: white;background-color: #7da7ae;border-bottom: 2px solid #acc7cf;font-size: 1.2rem;}
.iphone6-nav-item:first-of-type{border-top: 2px solid #acc7cf;}
.iphone6-nav-item[data-dpr="2"]{border-width: 4px;}
.iphone6-nav-item[data-dpr="3"]{border-width: 6px;}
.iphone6-nav-item a{color: white;}
.nav-container-extended{height: 18.6rem;}

/*first*/
.first{width: 100%;background-color: #b2c7cd;}
.first-connent{height: 31rem;}
.first-img{display: block;width: 13rem;height: 12.7rem;margin: 0 auto;margin-top: 2.5rem;}
.first-text{text-align: center;line-height: 6rem;font-size: 1.5rem;}
.first-btn{height: 3.1rem;width: 10.7rem;background-color: white;color: black;line-height: 2.1rem;text-align: center;
	border-radius: 0.8rem;display: block;margin: 0 auto;font-size: 1.5rem;}

/*second*/
.second{width: 100%;}
.second .col{border-bottom: 0.1rem solid #ccc;height: 3.9rem;line-height: 3.9rem;font-size: 1rem;display: flex;
	justify-content: center;background-color: white;}
.second .col a{color: #ccc;}
.second .col a:hover{color: black;}

/*third*/
.third-text{width: 23.5rem;margin: 5.5rem auto;}
.third-text h4{line-height: 3rem;text-align: center;font-weight: 700;color: #4c514f;font-size: 1.4rem;}
.third-text p{line-height: 2rem;text-indent: 2em;color: #b5b5b5;font-size: 0.8rem;}
// JavaScript Document
var nav = document.getElementById('nav');
var navExtendedClassName = 'nav-container-extended';

document.getElementById('btn-toggle').onclick = function() {
	// nav.className += ' ' + navExtendedClassName;
	if (nav.classList.contains(navExtendedClassName)) { // 收起
		nav.classList.remove(navExtendedClassName);
	} else { // 展开
		nav.classList.add(navExtendedClassName);
	}
};
(function () {
    'use strict';

    // dpr->scale = 1 / dpr
    var docEl = document.documentElement,
        viewportEl = document.querySelector('meta[name="viewport"]'),
        dpr = window.devicePixelRatio || 1,
        maxWidth = 680,
        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 = 37.5;
        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';
    }
})();

http://img.mukewang.com/climg/5e6b04b309cd2b2d05850888.jpg

http://img.mukewang.com/climg/5e6b04e20999b70f10802340.jpg

明明是超小屏的手机,华为MATE20的手机。我希望在浏览器测试的超小屏的效果能显示在手机上,结果出来的是ipad的效果

写回答

1回答

好帮手慕星星

2020-03-13

同学你好,在封装的grid-flex.css文件中,需要将媒体查询中所有的min-width修改

min-device-width,例如:

http://img.mukewang.com/climg/5e6b562409d208a807450397.jpg

1、min-device-width是设备整个显示区域的宽度,例如,真实的设备屏幕宽度。

2、min-width是目标显示区域的宽度,例如,浏览器宽度

测试真机的时候添加上device就好,自己再试一试

祝学习愉快!

0

0 学习 · 6815 问题

查看课程