外贸建站企业建站移动前端自适应适配方法总结
所谓前端适配,就是为了让移动设计稿在大部分的移动设备上看起来有一致的展示效果,目前比较流行的方法有两种。一种是强制meta viewport宽度为设计稿宽度,一种是使用rem自适应布局的flexible.js。各有利弊,使用第一种在某些浏览器的webview里面会出现兼容问题,而且对于1像素会无法渲染。而用rem的方案在背景和字体上也会有某些问题。
方案一:强制meta viewport的宽度为设计稿的宽度
把下面的代码放在头部,然后制作稿跟PC上一样的制作就行·
// 根据设计稿的宽度来传参 比如640 750 1125
!function(designWidth){
if (/Android(?:\s+|\/)(\d+\.\d+)?/.test(navigator.userAgent)) { var version = parseFloat(RegExp.$1); if (version > 2.3) { var phoneScale = parseInt(window.screen.width) / designWidth; document.write('<meta name="viewport" content="width=' + designWidth + ',minimum-scale=' + phoneScale + ',maximum-scale=' + phoneScale + ', target-densitydpi=device-dpi">'); } else { document.write('<meta name="viewport" content="width=' + designWidth + ',target-densitydpi=device-dpi">'); } } else { document.write('<meta name="viewport" content="width=' + designWidth + ',user-scalable=no,target-densitydpi=device-dpi,minimal-ui,viewport-fit=cover">'); } }(640);
demo
<!doctype HTML>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/> <meta content="telephone=no" name="format-detection" /> <title>model</title> <script type="text/javascript"> // 根据设计稿的宽度来传参 比如640 750 1125 !function(e){if(/Android(?:\s+|\/)(\d+\.\d+)?/.test(navigator.userAgent)){var t=parseFloat(RegExp.$1);if(t>2.3){var i=parseInt(window.screen.width)/e;document.write('<meta name="viewport" content="width='+e+",minimum-scale="+i+",maximum-scale="+i+', target-densitydpi=device-dpi">')}else{document.write('<meta name="viewport" content="width='+e+',target-densitydpi=device-dpi">')}}else{document.write('<meta name="viewport" content="width='+e+',user-scalable=no,target-densitydpi=device-dpi,minimal-ui,viewport-fit=cover">')}}(640); </script> <style> body,dl,dd,ul,ol,h1,h2,h3,h4,h5,h6,pre,form,input,textarea,p,hr,thead,tbody,tfoot,th,td{margin:0;padding:0;} ul,ol{list-style:none;} a{text-decoration:none;} html{-ms-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none;font-size:32px;} body{font-size:32px;line-height:1.5;} body,button,input,select,textarea{font-family:'helvetica neue',tahoma,'hiragino sans gb',stheiti,'wenquanyi micro hei',5FAE8F6F96C59ED1,5B8B4F53,sans-serif;} b,strong{font-weight:bold;} i,em{font-style:normal;} table{border-collapse:collapse;border-spacing:0;} table th,table td{border:1px solid #ddd;padding:5px;} table th{font-weight:inherit;border-bottom-width:2px;border-bottom-color:#ccc;} img{border: