移动端web页面如何适配

移动端web页面如何适配,现有两个方案:

1 设置viewport进行缩放

简单粗暴,使用过程中反应缩放会导致有些页面元素会糊的情况。天猫的web app的首页使用这种方案

在页面中加入viewport.js

var doc = window.document,
    docEle = doc.documentElement,
    dpr = Math.ceil(window.devicePixelRatio),
    vp = document.querySelector(‘meta[name="viewport"]‘),
    docWidth = docEle.clientWidth,
    r = docWidth / 375;
vp.setAttribute(‘content‘, ‘width=375,initial-scale=‘ + r + ‘,maximum-scale=‘ + r * dpr + ‘, minimum-scale=‘ + r / dpr + ‘,user-scalable=no‘);

2 rem能等比例适配所有屏幕

rem是通过根元素进行适配的,网页中的根元素指的是html。我们通过设置html的字体大小就可以控制rem的大小。

在页面中加入common.js

var dpr, rem, scale;

var fontEl = document.createElement(‘style‘);
var metaEl = document.querySelector(‘meta[name="viewport"]‘);
var docEl = document.documentElement;
dpr = window.devicePixelRatio || 1;
rem =  docEl.clientWidth  / 10;
scale = 1 / dpr;

// 设置viewport,进行缩放,达到高清效果
//metaEl.setAttribute(‘content‘, ‘width=‘ + dpr * rem + ‘,initial-scale=1,maximum-scale=1, minimum-scale=1,user-scalable=no‘);

// 设置data-dpr属性,留作的css hack之用
docEl.setAttribute(‘data-dpr‘, dpr);

// 动态写入样式
docEl.firstElementChild.appendChild(fontEl);
fontEl.innerHTML = ‘html{font-size:‘ + rem + ‘px;}‘;

// 给js调用的,某一dpr下rem和px之间的转换函数
window.rem2px = function(v) {
    v = parseFloat(v);
    return v * rem;
};
window.px2rem = function(v) {
    v = parseFloat(v);
    return v / rem;
};

window.dpr = dpr;
window.rem = rem;

====================计算相应的rem值=方法============================================

1通过sass,定义函数计算rem

$baseFontSize:      64px !default;
$gray:              #cccccc !default;

// pixels to rems
@function pxToRem($px) {
    @return $px / $baseFontSize * 1rem;
}

body{
    font-size:$baseFontSize;
    color:lighten($gray,10%);
}
.test{
    font-size:pxToRem(30px);
    color:darken($gray,10%);
}

编译后的css

body {
  font-size: 64px;
  color: #e6e6e6; }

.test {
  font-size: 0.46875rem;
  color: #b3b3b3; }

/*# sourceMappingURL=test.css.map */

2通过工具计算

点击:  px转rem工具

该工具的用法:

输入自己页面的html font size,上传自己的css代码,然后下载css,就可以了。

---------------------------参考------------------------------------------

rem单位详细讲解 :  webapp变革之rem

学习sass:   sass语法

sass 编译工具:koala   koala使用教程

时间: 2024-10-02 14:56:15

移动端web页面如何适配的相关文章

移动端WEB页面

百度前端技术学院第一阶段任务十一,关于移动端WEB页面布局,参考资料如下(都是一些网页链接): MDN:手机网页开发 MDN:在移动浏览器中使用viewport元标签控制布局 移动前端开发和 Web 前端开发的区别是什么 Alloyteam移动开发规范概述 手机/移动前端开发需要注意的20个要点 w3cplus响应式技术资源 浅谈移动Web开发 Alloyteam Mars 移动WEB开发入门 移动开发资源集合 The Mobile Web Handbook MobileWeb 适配总结 移动前

移动端web页面开发常用的头部标签设置

在移动端web页面开发中,我们常需要设置各种头部标签以帮助浏览器更好的解析页面,将页面完美呈现,这里列出了工作中常用的各种头部标签,以备查询. viewport <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"> initial-scale属性控制页面最初加载时的缩放等级.maximum-scale.m

[转]移动端web页面使用字体的思考

一直不知道手机端用的什么字体,只是觉得类似雅黑,直到有一次设计师问到设计移动web页面该用什么字体才严肃地想起这个问题. 前人已栽树,后人我就直接转来吧…… 回想2年前刚开始接触手机项目,接到PSD稿后,发现视觉设计师们喜欢用微软雅黑作为中文字体进行设计,于是我写页面的时候也定义 font-family 为微软雅黑,后来发到线上后,细心的产品经理发现页面的字体不是微软雅黑,要求马上修改,我就惊呆了,还跟产品争执一番. 后来了解到的手机系统 ios.android 等是不支持微软雅黑字体,为了满足

移动端Web页面适配方案

概念理解 viewport视口 visual viewport 可见视口,设备屏幕的宽度  windw.innerWidth/Height layout viewport 布局视口,DOM宽度 document.documentElement.cliendWidth/Heig ideal viewport 理想视口:目标是让把默认的layout viewport宽度设置为移动设备的屏幕宽度 visual viewport = layout viewport * scale <meta name=

移动端Web页面问题(转载)

1.安卓浏览器看背景图片,有些设备会模糊.   用同等比例的图片在PC机上很清楚,但是手机上很模糊,原因是什么呢? 经过研究,是devicePixelRatio作怪,因为手机分辨率太小,如果按照分辨率来显示网页,这样字会非常小,所以苹果当初就把iPhone 4的960640分辨率,在网页里只显示了480320,这样devicePixelRatio=2.现在android比较乱,有1.5的,有2的也有3的. 想让图片在手机里显示更为清晰,必须使用2x的背景图来代替img标签(一般情况都是用2倍).

倾力总结40条常见的移动端Web页面问题解决方案

1.安卓浏览器看背景图片,有些设备会模糊. 用同等比例的图片在PC机上很清楚,但是手机上很模糊,原因是什么呢? 经过研究,是devicePixelRatio作怪,因为手机分辨率太小,如果按照分辨率来显示网页,这样字会非常小,所以苹果当初就把iPhone 4的960640分辨率,在网页里只显示了480320,这样devicePixelRatio=2.现在android比较乱,有1.5的,有2的也有3的. 想让图片在手机里显示更为清晰,必须使用2x的背景图来代替img标签(一般情况都是用2倍).例如

移动端Web页面问题解决方案

1.安卓浏览器看背景图片,有些设备会模糊. 用同等比例的图片在PC机上很清楚,但是手机上很模糊,原因是什么呢? 经过研究,是devicePixelRatio作怪,因为手机分辨率太小,如果按照分辨率来显示网页,这样字会非常小,所以苹果当初就把iPhone 4的960640分辨率,在网页里只显示了480320,这样devicePixelRatio=2.现在android比较乱,有1.5的,有2的也有3的. 想让图片在手机里显示更为清晰,必须使用2x的背景图来代替img标签(一般情况都是用2倍).例如

(转)倾力总结40条常见的移动端Web页面问题解决方案

原文链接:戳这里 1.安卓浏览器看背景图片,有些设备会模糊.   用同等比例的图片在PC机上很清楚,但是手机上很模糊,原因是什么呢? 经过研究,是devicePixelRatio作怪,因为手机分辨率太小,如果按照分辨率来显示网页,这样字会非常小,所以苹果当初就把iPhone 4的960640分辨率,在网页里只显示了480320,这样devicePixelRatio=2.现在android比较乱,有1.5的,有2的也有3的. 想让图片在手机里显示更为清晰,必须使用2x的背景图来代替img标签(一般

开发移动端web页面click事件失效问题

这两天在做一个WAP页面,在chrome上模拟移动端的时候,都好好的,然而放到手机上测试时, 发现有些点击事件直接无反应,但是有些有反应: 难道是由于我页面上有用到滚动插件,里面的touch事件的preventDefault导致click失效? 于是,换成了touchSart事件试了下,效果比之前略好,但是,有重复点击事件,本小白排查了一会儿, 发现页面上明明在滚动区域有别的点击事件,为毛别的用的好好的,就这个不行,仔细对比,发现别的都是A标签, 无效的是DIV,于是,我就像发现了新大陆一样,麻