移动端适配问题

适配问题

怎么适配iphone6
1px问题

为什么页面与设计稿会出现偏差?

dpr=设备像素/ css像素
,只有dpr等于1的时候,实际效果和设计稿的尺寸比例才是1:1。

因为iPhone6的DPR(设备像素比)为2,设备像素为750,所以iPhone6的理想视口尺寸为375px。

因为设计稿是基于设备像素,页面是基于css像素的。css中的宽度是基于理想视口的(宽度375px),设计图上是基于设备宽度750px,所以尺寸不对。


怎么处理?

init-scale=0.5

缺陷:但是宽度不能自适应


⭐️rem大法

基于

html
标签的
font-size
设置的

手淘的做法:

把缩放尺寸设置成dpr的倒数。

读设备宽度,动态设置meta标签的 content属性中的

maximun
,
minimum
,
user-scable

<html>
<head><title></title><meta charset="utf-8" /><meta name="viewport" content="" /><style>body{margin: 0;padding: 0;}.box{width: 2.66666667rem;height: 2.66666667rem;background: red;}</style>
</head>
<body><div class="box"></div><script>var scale = 1 / window.devicePixelRatio;document.querySelector('meta[name="viewport"]').setAttribute('content','width=device-width,initial-scale='   scale   ', maximum-scale='   scale   ', minimum-scale='   scale   ', user-scalable=no');document.documentElement.style.fontSize = document.documentElement.clientWidth / 10   'px';</script>
</body>
</html>

网易的做法

现在的设计稿都是750px宽度(p6的宽),那要想实现

css样式:设计图=1:100
这种比较方便的折算方式,font-size就要设置成7.5px;

也就是说

1rem = 7.5px

<html>
<head><title></title><meta charset="utf-8" /><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" /><style>body{margin: 0;padding: 0;}.box{width: 2rem;height: 2rem;background: red;}</style>
</head>
<body><div class="box"></div><script>document.documentElement.style.fontSize = document.documentElement.clientWidth / 7.5   'px';</script>
</body>
</html>

总结

rem是为了实现移动端自适应布局。通过在

html
元素下设置
font-size
定义。

另外,手淘的做法是通过判断设备的dpr,将缩放规模scale设置为dpr的倒数,再用js动态设置

meta
标签的
content
属性和font-size基准值的大小。

网易的做法是,禁用用户缩放,scale始终为1,将font-size设置为625%,即 1rem=100px。


1px问题

如何实现移动端的1px边框

方法一:
transformY:scale(50%)
方法二:
border-width:0 0 2px 0;
border-image:url("xxx.png") 0 0 2 0 stretch // 图片地址 上下剪切 左右剪切 上下边宽 左右边宽 图片拉伸

vm/vh rem大法

vm/vh是未来的趋势

rem方式弊端:需要动态计算根字体大小

做法:用vm/vh来计算根字体大小,剩下的自适应布局依旧按照rem的方法

用vm/vh做适配页面

⭐️关于vm/vh

1. 与%百分比的区别

vm/vh 是基于视窗的
%基于父元素

2. 使用场景

随着页面不同,文字图片缩小放大(适配页面)

3. 与rem的区别

vm/vh没有最大、最小宽大的限制(设备很小的时候,图文会缩得特别特别小……)

措施:

1.解决背景过小问题

body{min-width:xxx px;max-width: xxx px;
}

2.媒体查询限制根文字大小(解决文字过小问题)

html { font-size: ($vw_fontsize / ($vw_design / 2)) * 100vw; // 同时,通过Media Queries 限制根元素最大最小值 @media screen and (max-width: 320px) { font-size: 64px; } @media screen and (min-width: 540px) { font-size: 108px; } }

本文转载于:猿2048https://www.mk2048.com/blog/blog.php?id=0bchaa&title=移动端适配问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/371093.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用Java弹出创建新的消息通知

首先创建JFrame作为弹出窗口。 在其中添加一些JLabel以包含信息&#xff0c;并在适当的位置分配它们&#xff0c;使其看起来像一条通知消息。 下面给出了示例代码&#xff1a; String message You got a new notification message. Isnt it awesome to have such a notificat…

mysql游标表间数据迁移_FalseMySQL存储过程--gt;通过游标遍历和异常处理迁移数据到历史表-mysql-第二电脑网...

-- 大表数据迁移,每天凌晨1点到5点执行,执行间隔时间10分钟&#xff0c;迁移旧数据到历史表。DELIMITER $$USE dbx$$电脑技术网对《FalseMySQL存储过程-->通过游标遍历和异常处理迁移数据到历史表》总结来说&#xff0c;为我们程序员很实用。DROP PROCEDURE IF EXISTS pro_x…

课后作业-阅读任务-阅读笔记-2

好的单元测试的标准&#xff1a; 1>单元测试应该在最基本的功能/参数上验证程序的正确性 2>单元测试必须由最熟悉代码的人&#xff08;程序的作者&#xff09;来写 3>单元测试后&#xff0c;机器状态保持不变 4>单元测试要快&#xff08;一个测试的运行时间是几秒钟…

定位-固定定位

把box2设为固定定位&#xff1a; <!DOCTYPE html> <html lang"en" dir"ltr"><head><meta charset"utf-8"><title>定位</title><style media"screen">.box1{width:100px; height: 100px;ba…

垃圾自动回收

自动回收 自动回收的语言&#xff1a;根据变量是否还被引用&#xff0c;来确定是否应该回收Javascript内存泄露 由于js回调及闭包的特性&#xff0c;当方法嵌套太多的时候&#xff0c;可能回最外层的变量可能一直都被引用着&#xff0c;这样就导致变量一直没有被回收&#xff0…

Java并发执行器的懒惰开发人员简介

如果我告诉您util.concurrent API自2004年起提供此类服务&#xff0c;我就会自欺欺人。但是&#xff0c;我想回顾一下一些很酷的功能。 并发专家&#xff0c;现在是时候关闭该窗口了。 所有其他人&#xff0c;请紧紧抓住乐趣。 你不会忘记你的根源 执行程序是具有单个执行方法…

《我们应该怎样做需求分析》阅读笔记

认识&#xff1a;软件需求分析是贯穿软件项目从出生到成长或者死亡的&#xff0c;我们必须搞清楚到手的软件是为了什么要做什么做成什么样&#xff0c;通过顾客的描述彼此的合作分析需求与业务逻辑&#xff0c;不断改进从而实现软件在合理范围内符合顾客要求。 怎么做&#xff…

Java代码格式化算法_一个时间格式化的工具类:TimeUtil

源代码如下&#xff1a;import android.content.Context;import android.text.TextUtils;import android.text.format.DateUtils;import java.text.Format;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.regex.Matcher…

(转)VS2010/MFC编程入门之前言

鸡啄米的C编程入门系列给大家讲了C的编程入门知识&#xff0c;大家对C语言在语法和设计思想上应该有了一定的了解了。但是教程中讲的例子只是一个个简单的例程&#xff0c;并没有可视化窗口。鸡啄米在这套VS2010/MFC编程入门教程中将会给大家讲解怎样使用VS2010进行可视化编程&…

JavaOne 2012:JavaFX图形技巧和窍门

我回到希尔顿&#xff08;皇家宴会厅B&#xff09;看了Richard Bair的&#xff08;Oracle Java客户架构师&#xff09;的“ JavaFX图形技巧和窍门”。 Bair与FX Experience相关联&#xff0c;并且显然了解JavaFX。 拜尔说&#xff0c;他演讲的主题是表演。 他告诫说&#xff0c…

web前端知识点1

1. input属于窗体元素,层级显示比flash、其它元素都高。请判断这句话的正确与否。 错误 层级显示优先级&#xff1a; frameset > 表单元素 > 非表单元素 在html中&#xff0c;帧元素&#xff08;frameset&#xff09;的优先级最高&#xff0c;表单元素比非表单元素的优…

18. 使用模板【从零开始学Spring Boot】

转&#xff1a;http://blog.csdn.net/linxingliang/article/details/52017098 18.1 使用thymeleaf 整体步骤&#xff1a; &#xff08;1&#xff09; 在pom.xml中引入thymeleaf; &#xff08;2&#xff09; 如何关闭thymeleaf缓存 &#xff08;3&#xff09; …

java单元测试算初级_Java____Eclipse下JUnit单元测试(初级)

给大家分享一个链接希望对你们有帮助 http://blog.csdn.net/huangbiao86/article/details/6709742今天看图片命名唯一的策略时看到有个大大用JUnit测试&#xff0c;神奇的样子&#xff0c;遂上网搜集来三篇JUnit测试的入门文章&#xff0c;作为参考。原作地址在上面&#xff0c…

Hadoop + Amazon EC2 –更新的教程

在Hadoop的Wiki页面上放置了一个旧教程&#xff1a; http : //wiki.apache.org/hadoop/AmazonEC2 &#xff0c;但是最近我不得不遵循本教程&#xff0c;并且我注意到它没有涵盖某些Amazon新功能。 建议您已经熟悉Hadoop的基础来遵循本教程&#xff0c;可以在Hadoop的主页http:…

oracle11g 修改字符集 修改为ZHS16GBK

转&#xff1a;http://www.cnblogs.com/jay-xu33/p/5210098.html oracle11g 修改字符集 修改为ZHS16GBK1.cmd下,cd到oracle数据库软件的服务器端 如&#xff1a;D:\app\Administrator\product\11.2.0\dbhome_1\BIN 2.输入set ORACLE_SID你想进入的数据库的那个sid 3.输入 sqlpl…

浏览器内核

浏览器的四大内核&#xff1a; Trident&#xff0c;Gecko&#xff0c;Webkit&#xff0c;Blink。 不同的内核对网页编写语法的解释也有不同&#xff0c;进而导致同一个页面在不同内核的浏览器下显示出来的效果也会有所出入&#xff0c;这也是作为一个前端工程师需要了解不同浏…

2017.4.14 Java String.split()用法小结

在java.lang包中有String.split()方法,返回是一个数组 我在应用中用到一些,给大家总结一下,仅供大家参考: 1、如果用“.”作为分隔的话,必须是如下写法,String.split("\\."),这样才能正确的分隔开,不能用String.split("."); 2、如果用“|”作为分隔的话,必…

java线程统一_Java线程结果不一致

我有一个实现可运行的线程类和一个int计数器作为实例变量。两种同步方法add和sub。当我以某种方式运行测试类时&#xff0c;它几次会输出错误的结果。据我了解&#xff0c;当方法同步时&#xff0c;整个对象将被锁定以供其他线程访问&#xff0c;这种逻辑每次我们都应该获得相同…

markdown-Macdown

#标题 [页面锚点](#name) > <a name"name"></a>文字 **加粗**(Command-B) *斜体*(Command-I) * * * 或者 - -- 无序列表 1. 2. 3. 有序列表 、、、 代码段 、、、 或者用 ~ 代替 或者 上下空一行每行缩进4个空格 <http://www.baidu.com>链…

什么是web标准??

web标准 不是某一个标准&#xff0c;而是一系列标准的集合。网页主要由三部分组成&#xff1a;结构&#xff08;Structure&#xff09;、表现&#xff08;Presentation&#xff09;和行为&#xff08;Behavior&#xff09;。对应的标准也分三方面&#xff1a;结构化标准语言主…