通过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样式繁多 且支持触控

后面再慢慢补充

时间: 2024-10-20 00:18:39

通过rem编写自适应移动端要点的相关文章

rem实现自适应

总结一下,rem实现自适应:用rem代替px,配合媒体查询设置font-size 首先,px是死的.若一律用px,那就会大的显得小,小的屏幕显得大.其次,rem是活的,通过设置字体大小可以引起rem的改变,为什么? ①因为rem和px有一个对应关系,因为对应关系是固定的,举个栗子:5对应15,15对应25,对应关系是差为10,但是其实这个不太利于口算,但是如果我们把它写成0对应10,10对应20,对应关系没变,但是就利于 口算 了.一般来说 ,浏览器默认字体大小是16px,设置62.5%后就有1

rem 结合 scss 移动端自适应 初级入门demo

首先说明 本篇 内容 适合初级使用 rem 开发移动端 自适应 公式计算 推导过程, 高手绕路. 目标尺寸 = rem  *  根字体大小 根字体大小 = 比例值 = 屏幕尺寸宽度/PSD稿尺寸宽度 目标尺寸 = rem  *  屏幕尺寸宽度/PSD稿尺寸宽度 Px    =  rem * (html根字体px) Html跟字体浏览器支持 最小 12像素, 避免过小加权 系数 n 实际尺寸                                 实际尺寸              屏幕尺

移动端如何编写自适应网页

一.html页面中head部分引入 <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1"> content属性值 : width:可视区域的宽度,值可为数字或关键词device-width intial-scale:页面首次被显示是可视区域的缩放级别,取值1.0则页面按实际尺寸显示,无任何缩放 maximum-scale=1.0, mini

自适应PC端网页制作使用REM

做一个PC端的网页,设计图是1920X1080的. 要在常见屏上显示正常(比例正确可) 1280X720 1366X768 1440X900 1920X1080 使用了几种办法 1.内容在一屏内显示的,采用了(内容框)上下左右居中的办法,里面的内容绝对于这个内容框定位.这样一来,在不同大小屏中,内容总是在中间,看起来较正常 2.长,宽,LEFT,TOP,RIGHT,BOTTOM都采用了REM,并且HTML的FONT-SIZE设置的是100PX一是觉得计算方便,二是如果设为10PX,谷歌会不兼容.

基于vue-cli配置手淘的lib-flexible + rem,实现移动端自适应

没接触过flexible的建议先看看大漠的这篇文章这样你才会知道长度为什么用rem,而字体要用px 安装flexible npm install lib-flexible --save 引入flexible 在项目入口文件main.js中添加如下代码,引入flexible import 'lib-flexible' px 转 rem 使用 webpack 的 px2rem-loader,自动将px转换为rem 安装px2rem-loader npm install px2rem-loader -

Rem实现自适应初体验

第一次做移动端的页面,遇到的第一个问题就是移动端的轮播图.其实轮播图的插件有很多,但是完全满足需求的并不容易找. 需求: 1.实现基本的触屏轮播图效果 2.传入非标准比例的图片,可以自动平铺(有时候图片可能比例略有偏差,当然例子里的图是随便找的,平铺之后不能看呀) 3.轮播图模块能实现自适应,按照固定高宽比显示,比如3:10的高宽比 一.初识rem 那么这个需求的难点在哪里呢?其实就是我需要限定图片的宽高,但是又要保证自适应 如果只考虑前者: .swiper-container { width:

rem的自适应

关于字体大小的自适应,最近用的很火的就是rem.自从认识了rem,我也用的很起劲,可是在项目实践中,也踩过了一些坑,整理如下,最终发现有一个相对而言比较完美的解决方案. 1.什么是rem?rem是一种长度单位,任何能定义XXpx的地方,都能定义为XXrem.和px固定大小不同,rem是 相对于根元素<html>的相对单位,简单说明下: PS:瞧见没,p标签里面的文字大小是相对于根元素html的而不是相对于其父元素div的. 2.rem响应式方案1:通过JS检测屏幕大小自动改变根元素html字体

移动端Viewport &amp; 使用rem来开发移动端网站

Viewport大神 无双 的精彩解释 具体参数各型号是否支持参见: http://www.cnblogs.com/2050/p/3877280.html#commentform 摘录: 移动设备上的viewport: 设备的屏幕上能用来显示我们的网页的那一块区域 设备像素比: docment.devicePixelRatio = 物理像素 / 独立像素 在Retina屏的iphone上,devicePixelRatio的值为2,也就是说1个css像素相当于2个物理像素. 一些设备上浏览器的默认

php编写TCP服务端和客户端程序

From: http://blog.csdn.net/anda0109/article/details/46655301 1.修改php.ini,打开extension=php_sockets.dll 2.服务端程序SocketServer.php [php] view plaincopyprint? <?php //确保在连接客户端时不会超时 set_time_limit(0); //设置IP和端口号 $address = "127.0.0.1"; $port = 3046;