通过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的开发最主要解决的就是“自适应自适应布局”.常规的适配有很多做法,例如:流式布局.限死宽度等,但是这些方案都不是最佳的解决方法,而最满足设计需要的是: 元素可以根据屏幕大小而等比列变 ...
随机推荐
- GitLab服务器搭建及配置
一.服务器环境 操作系统:CentOS release 6.5 (Final) GitLab版本: GitLab-shell:2.0.1 Ruby version: ruby 2.1.2p95 (20 ...
- mysql 求最小值/最大值
计算所有人最低工资和最高工资,需分别用到min()和max()函数.(请注意,MIN和MAX函数会忽略NULL值) select min(sal) as min_sal , max(sal) as m ...
- 不同编程语言打印“元旦快乐!"
javascript: document.write("元旦快乐!"+"<br/>"); PHP: <?php echo "元旦快乐 ...
- iOS 标识
通常情况下,iOS系统用NSUserDefaults存储数据信息,但是对于一些私密信息,比如密码.证书等等,就需要使用更为安全的keychain了. keychain里保存的信息不会因App被删除而丢 ...
- oracle数据库备份和还原
ip导出方式:exp demo/demo@127.0.0.1:1521/orcl file=f:\f.dmp full=y 备份:exp demo/demo@orcl file=f:\f.dmp f ...
- mysql开启登录日志和sql日志 排查错误
首先看是否开启了日志 show global variables like '%general%'; set global general_log = on; // 打开 set global gen ...
- IOS开发UI基础学习-------总结
什么叫控件? 屏幕上所有UI元素都叫做控件(也有叫做视图.组件) 控件的共同属性 尺寸 位置 背景色 ... 苹果将控件的共同属性都抽取到父类UIView中 所有控件最终都继承自UIView 父子控件 ...
- undefined reference to `_init'问题解决
今天利用CDT 的eclipse调试程序,遇到下面的问题: d:/plugin/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi ...
- WeX5 - AJAX跨域调用相关知识-CORS和JSONP
http://docs.wex5.com/ajax-cross-domain/ 1.什么是跨域 跨域问题产生的原因,是由于浏览器的安全机制,JS只能访问与所在页面同一个域(相同协议.域名.端口)的内容 ...
- MSSQL 批量Update
UPDATE dbo.WX_TWODIMENCODE_INFO SET wti_scan_views=t.count FROM ( SELECT COUNT(*) AS 'count',lci_ere ...