通过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的开发最主要解决的就是“自适应自适应布局”.常规的适配有很多做法,例如:流式布局.限死宽度等,但是这些方案都不是最佳的解决方法,而最满足设计需要的是: 元素可以根据屏幕大小而等比列变 ...
随机推荐
- 汇编语言基础 debug的使用
-r 查看,改变CPU寄存器的内容 -r 加上寄存器名 在:后输入要写入的数据后 完成更改 debug 随着CS IP的改变 对应的汇编指令也不同 -r ip -r cs修改 ip cs 的值 d 段 ...
- strlen(); strcpy(); strcat(); strcmp() ---笔记
指针小知识点: int a =10; int *p=&a; int *q=p; //p中保存的是a的地址 int *q=p; //将p的值赋给q 作用是让q也指向a ...
- id生成策略 id工具类
import java.util.Random; /** * 各种id生成策略 * <p>Title: IDUtils</p> * <p>Description: ...
- 【转载】ANSYS完全法与模态叠加法瞬态分析实例
原文地址:http://www.caetecc.com/thread-2172-1-1.html ! 半脉冲载荷 --- 模态叠加法fini/clear,nostart/PREP7ET,1,BEAM4 ...
- 学习css中得与惑
css的学习分享 所学的css知识看多,会看懂.这只是在实践中发现的问题: 一. ???h1比div还大 h1上下有边距 为什么浮动不了 (现不知道) 二. css写了 表现不出来.... ...
- IO:InputStream
InputStream类(java.io.InputStream) public abstract class InputStream extends Object implements Closea ...
- Mac系统终端命令行不执行命令 总出现command not found解决方法
配置过安卓开发环境,改过bash_profile这个文件,最后不知怎么的只有cd命令能执行,我猜测可能修改bash_profile文件后没有保存 导致的 保存命令是: source .bas ...
- 【转】libevent源码分析
libevent源码分析 转自:http://www.cnblogs.com/hustcat/archive/2010/08/31/1814022.html 这两天没事,看了一下Memcached和l ...
- python中import和from...import区别
在python用import或者from...import来导入相应的模块.模块其实就是一些函数和类的集合文件,它能实现一些相应的功能,当我们需要使用这些功能的时候,直接把相应的模块导入到我们的程序中 ...
- IOS-指定返回Modal的控制器presentViewController
[self.presentingViewController.presentingViewController dismissViewControllerAnimated:NO completion: ...