老师帮我看一下代码跟屏幕适配。
来源:5-2 项目作业
要每天学习的小蓝同学
2021-11-23 12:37:37
相关代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Document</title> </head> <body> <div id="details-page" class="details-layout"> <!-- 头部 --> <div class="header-layout"> <div class="header"> <i class="iconfont icon-return"></i> <div> <i class="iconfont icon-collect"></i> <a href="javascript:;"> <i class="iconfont icon-share"></i> </a> </div> </div> </div> <!-- 主体内容 --> <div id="details-main" class="main-layout"> <!-- 图文 --> <div class="main-wordspic"> <p class="wordspic-pic"> <img src="./header-pic.png" alt="" class="main-img"> </p> <p class="wordspic-title">上海-北京往返五订单ad啊哈开始的卡号卡计算的安康市开大就奥斯卡接电话卡较好的a日游哈师大哈法咖</p> <p class="wordspic-tags"> <span>赠接送机</span> <span>赠当地游项目</span> </p> <p class="wordspic-counts"> <span>浏览24004</span> <span>已售138份</span> </p> </div> </div> <!-- 底部工具条 --> <div id="details-toolbox" class="toolbox-layout"> </div> </div> </body> </html>
相关代码:
html, body { /* 把滚动条禁止,不要出现在html或者body身上 */ overflow: hidden; width: 100%; height: 100%; background-color: #f5f5f5; }
相关代码:
@font-face { font-family: 'PingFangSCRegular'; src: url('../fonts/PingFangSCRegular.ttf') format('truetype'); } html, body, div, span, h1, h2, h3, h4, h5, h6, p, hr, a, em, img, strong, b, u, i, dl, dt, dd, ol, ul, li, form, input, button, tr, th, td, footer, header, nav { box-sizing: border-box; padding: 0; margin: 0; border: none; outline: none; font-family: 'PingFangSCRegular'; } i, em { font-style: normal; } ul, ol { list-style: none; } a { text-decoration: none; -webkit-tap-highlight-color: transparent; } img { vertical-align: top; }
相关代码:
[data-dpr='2'] body, [data-dpr='2'] a, [data-dpr='2'] i{ font-size: 32px; } [data-dpr='3'] body, [data-dpr='3'] a, [data-dpr='3'] i{ font-size: 48px; } html, body { background-color: #fff; } /* 头部 */ .header-layout{ position: fixed; top: 0; left: 0; z-index: 1000; width: 100%; height: 1.35rem; } .header { display: flex; justify-content:space-between; align-items: center; width: 100%; height: 100%; padding: 0 .5rem; transition: background 0.5s; /* background-color: red; */ } .header-transition { background-color:rgba(25,196,138,0.9); } .header .icon-collect { margin-right: .5rem; } .header .iconfont { color: #fff; } /* main */ /* wordspic */ .main-wordspic { width: 100%; height: 10.25rem; } .wordspic-pic { width: 100%; height: 6.25rem; } .main-img { width: 100%; height: 100%; } .wordspic-title { padding: .4rem .5rem .2rem; font-size: .35rem; color: #333333; line-height: .6rem; } .wordspic-tags { padding: 0 .5rem .4rem; } .wordspic-tags span{ font-size: .35rem; color: #5278A0; line-height: .4rem; padding: 0 .3rem 0; border: 1px solid #5278A0; border-radius: 1px; } .wordspic-tags span:first-child{ margin-right: .3rem; }
相关代码:
(function () { // 严格模式 'use strict'; // 以下这块是通用适配原理 // dpr-> scale=1/dpr var docEl = document.documentElement; var viewportEl = document.querySelector('meta[name="viewport"]'); var dpr = window.devicePixelRatio || 1; var maxWidth = 540; var 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; var 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'; } })();
头都大了。怎么效果这么差
2回答
同学你好,不需要发送项目代码了,老师找到原因了,是同学设置的尺寸全部小了一半,即应该将1.35rem乘以2,才是原型图中的大小,原因如下:
祝学习愉快!
好帮手慕然然
2021-11-23
同学你好,老师这边看到的效果与同学是一样的,确实是屏幕适配的结果,建议同学将整个项目打包一下发给老师,老师整体看一下效果,发送方式见私信。
祝学习愉快!
相似问题