通过rem编写自适应移动端要点
直接上干货
1,dpr 苹果手机像素是2 普通安卓机是1 也就是说1像素下苹果需要的像素点是安卓机的两倍 所以一个需要15x15显示的图像安卓机仅需要提供15X15即可显示清楚 苹果手机需要要30X30 你可以采用检测不同类型手机加载不同大小图 为了保证像素
推荐做的时候用苹果大图然后在转化为不同尺寸。
2,rem 实现方法
在头部通过viewport 监控屏幕尺寸:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
在css中利用css3 @media 呈现在不同尺寸屏幕下font-size 从而控制页面的等比放大
根html设置font-size 为67.5%时 时1rem 为 10px
这里采用的是125%即为20px 是由于谷歌浏览器的最小显示是12px 为了方便调试并且我做完发现采用20效果还行
我这里做的时候是在340的基准下所以 在360的屏幕下 font-size 应该时360/340 * 125% 约= 132.3 以此类推
html
{
font-size : 125%;
-ms-text-size-adjust:100%;
-webkit-text-size-adjust:100%;
height:100%
}
@media screen and (min-width: 321px) and (max-width: 360px){
html {
font-size: 132.3% ;
}
@media screen and (min-width: 361px) and (max-width: 375px){
html {
font-size: 137.9% ;
}
}
@media screen and (min-width: 376px) and (max-width: 414px){
html {
font-size: 152.2% ;
}
}
@media screen and (min-width: 415px) and (max-width: 435px){
html {
font-size: 160%;
}
}
@media screen and (min-width: 436px) and (max-width: 480px){
html {
font-size: 176.47%;
}
}
@media screen and (min-width: 641px) and (max-width: 769px){
html {
font-size: 250% ;
}
}
3,注意手机浏览器一般都有设置最小的字体显示 打个比方就是你设置为5px 手机浏览器为了显示清楚 会按照10px显示
因为10px 是这个手机浏览器内置要求的最小字体 为了能显示5px的字
这里推荐采用css3 的scale属性通过缩放来模拟字体变小
手机端边框也有最小显示大小 可能你在google浏览器的手机模拟上看着没问题但在真实手机上会出现边框消失现象
这里推荐将border设置成none 采用css3 的box-shadow属性来模拟边框 box-shadow: inset 0 0 .05rem #fff,
inset 0 .05rem 0 #fff,
0 0px .05rem 0px black;//这里是黑边框
4,手机端不支持hover 属性如果要模拟hover效果可以采用 绑定touchstart 和 touchend 模拟效果 这里li-active是触控后的样式
$('.readboy-catalog li').on('touchstart',function(e) {
$(this).addClass("li-active");
});
$('.readboy-catalog li').on('touchend',function(e) {
$(this).removeClass("li-active");
});
5,手机端因为要求尽可能少的加载资源所以这里不推荐使用jquery 而是更轻量级的zepto用法和jquery基本相同
6,手机端推荐的轮播插件swiper样式繁多 且支持触控
后面再慢慢补充
通过rem编写自适应移动端要点的更多相关文章
- 使用rem编写自适应屏幕网页造成div被span撑高的解决办法
原始代码: <html> <head> <meta charset="utf-8"> <meta content="ie=edg ...
- 自适应PC端网页制作使用REM
做一个PC端的网页,设计图是1920X1080的. 要在常见屏上显示正常(比例正确可) 1280X720 1366X768 1440X900 1920X1080 使用了几种办法 1.内容在一屏内显示的 ...
- 移动端canvas文字图片合成并生成图片(canvas宽度自适应移动端屏幕)
这是我之前做的一个关于文字图片合成的代码,供大家参考,不足支出还望体谅:具体的注释在代码里都有,有什么不懂了可以留言互相交流.<!DOCTYPE html> <html lang=& ...
- 在python中编写socket服务端模块(二):使用poll或epoll
在linux上编写socket服务端程序一般可以用select.poll.epoll三种方式,本文主要介绍使用poll和epoll编写socket服务端模块. 使用poll方式的服务器端程序代码: i ...
- rem实现自适应
总结一下,rem实现自适应:用rem代替px,配合媒体查询设置font-size:n%. 首先,px是死的.若一律用px,那就会大的显得小,小的屏幕显得大.其次,rem是活的,通过设置字体大小可以引起 ...
- css3 rem手机自适应框架
css3 rem手机自适应框架 rem是按照html的字体大小来 所以 不同宽度浏览器 htmlfont-size不一样 就可以做到自适应了 此方法比百分比方便<pre><!DOCT ...
- 移动端利用rem实现自适应布局
好久没有写博客了,刚好说说最近遇到的移动端布局问题吧. 本来一直是觉得我的页面布局能力还是不错的,当然,是相对于较基础的来说还是不错的.不过,自己写的案例终归是跟实际开发有区别的,自己写案例的是觉得这 ...
- rem 结合 scss 移动端自适应 初级入门demo
首先说明 本篇 内容 适合初级使用 rem 开发移动端 自适应 公式计算 推导过程, 高手绕路. 目标尺寸 = rem * 根字体大小 Px = rem * (html根字体px) 根字体大 ...
- 移动端web app要使用rem实现自适应布局:font-size的响应式
关于webAPP的开发最主要解决的就是“自适应自适应布局”.常规的适配有很多做法,例如:流式布局.限死宽度等,但是这些方案都不是最佳的解决方法,而最满足设计需要的是: 元素可以根据屏幕大小而等比列变 ...
随机推荐
- Static List
Static ListStatic List is the smart implementation of list data structure for those languages that h ...
- Node.JS 学习路线图
转载自:http://www.admin10000.com/document/4624.html 从零开始nodejs系列文章, 将介绍如何利Javascript做为服务端脚本,通过Nodejs框架w ...
- oracle恢复误删除数据
--开启行移动功能alter table 表名 enable row movement;--恢复表数据flashback table 表名 to timestamp to_timestamp('201 ...
- 自定义windows新建菜单
注册表下找到hkey_classes_root 找到想要新建的文件扩展名(.txt,.php,.html,.xml etc.) 创建名为ShellNew的键,再在其下添加NullType的项
- JSBinding+Bridge.NET限制
限制: 框架代码不可以访问逻辑代码.这是最基本的. 框架里的函数 f 带数组参数时,逻辑代码调用 f 的话,数组只能做为输入,也就是说,如果在框架函数 f 里修改了数组的内容,那么逻辑代码是无法取得新 ...
- Ubuntu14.04+RabbitMQ3.6.3+Golang的最佳实践
目录 [TOC] 1.RabbitMQ介绍 1.1.什么是RabbitMQ? RabbitMQ 是由 LShift 提供的一个 Advanced Message Queuing Protocol ...
- [java] jsoup 解析网页获取省市区域信息
到国家统计局抓取数据, 到该class下解析数据 /** * jsoup解析网页 * @author xwolf * @date 2016-12-13 18:11 * @since V1.0.0 */ ...
- DE2-115开发板学习(1_时钟信号引脚分配与复位信号的产生)
1.DE2-115开发板资源 Altera EPCS64 Configuration Device 64MB SDRAM (两片) 50MHz Oscillator EP4CE115F29C7(4PL ...
- bzoj4750: 密码安全
Description 有些人在社交网络中使用过许多的密码,我们通过将各种形式的信息转化为 01 信号,再转化为整数,可以将这个 人在一段时间内使用过的密码视为一个长度为 n 的非负整数序列 A_1, ...
- 【MySQL】锁问题最佳实践
最近一段时间处理了较多锁的问题,包括锁等待导致业务连接堆积或超时,死锁导致业务失败等,这类问题对业务可能会造成严重的影响,没有处理经验的用户往往无从下手.下面将从整个数据库设计,开发,运维阶段介绍如何 ...