当前位置: 首页 > 编程日记 > 正文

视觉稿与H5页面之间的终端适配

移动端页面开发
备注:该篇文章使用宽为750px(iPhone6的设备像素)的视觉稿
编写html代码:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8" />
</head>
<body>

<div class="box"></div>

</body>
</html>
在css文件中写入样式:
*{
margin: 0;
padding: 0;

}
html,body{
width:100%;
overflow:hidden;
}
在head标签内写入meta视口标签
<meta name="viewport" content="width=device-width, initial-scale=1.0 ">

转换视觉稿中的尺寸大小:
方式1:
通过js来得到1rem的值(rem: 相对尺寸单位,相对于html标签字体大小的单位)
<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>
这样的设置有时候计算起来不方便,所以我们有时候就希望1rem=100px,这样在转换的时候就轻松很多。

方式2:
使用淘宝开源的代码:lib-flexible
<script type="text/javascript" src="./resource/js/flexible.js"></script>
这个js会在html标签上加入两个属性:data-dpr与font-size。
自动检测设备,你可以直接通过视觉稿去换算rem值,比如750/10=75px后面所有的都可以通过这个计算的到。
例如:视觉稿内:margin-left:15px,那么在开发中转换成rem:15/75=0.2rem,可以写成:margin-left:0.2rem

在字体上,不建议使用rem处理,可以使用如下方式处理:

@media screen and (max-width: 321px) {
body {
font-size:16px
}
}

@media screen and (min-width: 321px) and (max-width:400px) {
body {
font-size:17px
}
}

@media screen and (min-width: 400px) {
body {
font-size:19px
}
}

或者:
div {
width: 1rem;
height: 0.4rem;
font-size: 12px; // 默认写上dpr为1的fontSize
}

[data-dpr="2"] div {
font-size: 24px;
}

[data-dpr="3"] div {
font-size: 36px;
}

这样就可以在移动端实现你手中的视觉稿了。
以上知识参考了一些网址,详细情况可以访问以下链接:
1、http://hcysun.me/2015/10/19/%E4%B8%80%E7%AF%87%E7%9C%9F%E6%AD%A3%E6%95%99%E4%BC%9A%E4%BD%A0%E5%BC%80%E5%8F%91%E7%A7%BB%E5%8A%A8%E7%AB%AF%E9%A1%B5%E9%9D%A2%E7%9A%84%E6%96%87%E7%AB%A0-%E4%BA%8C/

2、https://github.com/hex-ci/lib-flexible

以上只能解决部分问题,还有一些问题没有办法处理,比如  高清图、表情图、1像素之类的,后续有时间补充。

大家看了以后觉得不对的,也请积极留言,作为小白,请大家多多关照。

转载于:https://www.cnblogs.com/yiyiboy-core/p/7299099.html

相关文章:

欢迎大家批评:CSDN Blog用户体验调查

CSDN Blog自2004年7月上线以来&#xff0c;得到了各位用户的大力支持&#xff0c;已经成为大家发表专业技术文章和进行技术交流的园地。为了给各位作者和读者提供更好的服务&#xff0c;我们组织了这次用户问卷调查&#xff0c;希望大家能够将意见反馈给我们。 CSDN Blog团…

几个我收藏的经典网站

壁纸酷:[url]http://www.bizhiku.net[/url],XP壁纸,vista壁纸,汽车壁纸,风景壁纸,游戏壁纸,美女桌面壁纸,3d壁纸,日历月历壁纸等等,精美桌面壁纸下载.WAP中国:[url]http://www.wapcn.net[/url],专业的手机资源网站下载,手机铃声,手机游戏,手机壁纸,手机电影,手机软件,手机主题下…

用Java求一个三位数,该三位数是与其每位数字的阶乘之和

题目&#xff1a;一个三位数&#xff0c;该三位数与其每位数字的阶乘之和 代码&#xff1a; public class TestSum {public static void main(String[] args) {int a, b, c, i;//for循环找那个满足条件的三位数&#xff08;i&#xff09;for (i 100 ; i < 999; i) {a i %…

Storm 0.9安装指南

Storm 0.9.2安装指南0 Storm0.9的亮点引用网上的描写叙述&#xff1a;“Storm 0.9.0.1版本号的第一亮点是引入了netty transport。Storm网络传输机制实现可插拔形式&#xff0c;当前包括两种方式&#xff1a;原来的0mq传输&#xff0c;以及新的netty实现。在早期版本号中&#…

WinForm 设置初始位置在屏幕右下角

base.Location new Point(Screen.PrimaryScreen.WorkingArea.Width - base.Width, Screen.PrimaryScreen.WorkingArea.Height - base.Height);转载于:https://www.cnblogs.com/RobotTech/archive/2008/01/31/1059548.html

给博客增加了一个主题Nautica02Liquid

在Open Source Web Design上看到一个主题&#xff0c;觉得很不错&#xff0c;于是将其Adapted成BlogEngine的主题&#xff0c;费劲功夫改出来后发现效果不是很好&#xff0c;个人认为是汉字在某些精美的主题上倒是不很适应&#xff0c;没有办法…… 但是总归是做出来了&#xf…

php 基于socket的基本通信

php 基于socket的基本通信 1、前言 Socket是应用层与TCP/IP协议族通信的中间软件抽象层&#xff0c;它是一组接口。在设计模式中&#xff0c;Socket其实就是一个门面模式&#xff0c;它把复杂的TCP/IP协议族隐藏在Socket接口后面&#xff0c;对用户来说&#xff0c;一组简单的接…

SpringBoot实战(十四)之整合KafKa

本人今天上午参考了不少博文&#xff0c;发现不少博文不是特别好&#xff0c;不是因为依赖冲突问题就是因为版本问题。 于是我结合相关的博文和案例&#xff0c;自己改写了下并参考了下&#xff0c;于是就有了这篇文章。希望能够给大家帮助&#xff0c;少走一些弯路。 一、KafK…

Java 对象的生命周期

Java对象的生命周期 在Java中&#xff0c;对象的生命周期包括以下几个阶段&#xff1a; 创建阶段(Created)应用阶段(In Use)不可见阶段(Invisible)不可达阶段(Unreachable)收集阶段(Collected)终结阶段(Finalized)对象空间重分配阶段(De-allocated) 图1. JavaObject Life Cyc…

ThinkPad -- Intel 无线网卡网络连接方法限制及无法用 Fn + F5 控制的问题

[url]http://www-900.ibm.com/cn/support/tscdoc/html/JLII-6R6E5C.HTML[/url]文章编号:JLII-6R6E5CThinkPad -- Intel 无线网卡网络连接方法限制及无法用 Fn F5 控制的问题适用机型:所有ThinkPad R50; 所有ThinkPad R50e; 所有ThinkPad R50p; 所有ThinkPad R51; 所有ThinkPad…

TreeSet集合(自然排序和比较器排序)

TreeSet集合自然排序和比较器排序 ​ 当指执行插入排序、希尔排序、归并排序等算法时&#xff0c;比较两个对象“大小”的比较操作。我们很容易理解整型的 i>j 这样的比较方式&#xff0c;但当我们对多个对象进行排序时&#xff0c;如何比较两个对象的“大小”呢&#xff1…

java字节流

一 字节流 1.1字节输出流OutputStream OutputStream是一个抽象类&#xff0c;操作的数据都是字节。 输出流中定义都是写write方法&#xff0c;如下图: 1.1.1 FileOutputStream类 OutputStream有很多子类&#xff0c;其中子类FileOutputStream可用来写入数据到文件。FileOutput…

MySQL:讨人喜欢的 MySQL replace into 用法(insert into 的增强版)

讨人喜欢的 MySQL replace into 用法&#xff08;insert into 的增强版&#xff09; 在向表中插入数据的时候&#xff0c;经常遇到这样的情况&#xff1a;1. 首先判断数据是否存在&#xff1b; 2. 如果不存在&#xff0c;则插入&#xff1b;3.如果存在&#xff0c;则更新。 在 …

读农民工兄弟学C#文章后的感觉

呵呵,这些文章让原本枯燥的技术文章变得简单,通俗,易懂此类文章是编程入门新手必读的好文章,当然高手可以看一下这些文章的语言风格,等日后自己出书时,可以参考之!哈哈,哪天我也出一本属于自己的技术书^_^好可惜的是自己离"高手"还有那么一段路要走!当然喽,我不是高手…

36晋级12第五场:冯志刚决胜入围(节目视频)

视频地址&#xff1a;[url]http://win.cn.yahoo.com/070613/16/mn53.html[/url]比赛时间&#xff1a;2007年4月17日 选手&#xff1a;王阳、冯志刚、刘恩霞、王嵩 评委&#xff1a; 熊晓鸽&#xff1a;IDG创业投资基金 创始合伙人 马云&#xff1a;阿里巴巴集团董事局主席及雅虎…

顯示密碼安全性強度

<div class"from-nav"><div class"Mtitle"><span>密码:</span></div><div class"Mright"><input name"password"type"password"id"password"size"20"class&quo…

HashMap集合遍历的五种方式

文章目录创建HashMap集合&#xff0c;添加数据一、第一种foreach遍历二、第二种foreach遍历三、第一种迭代器遍历 效率高&#xff08;建议使用&#xff09;四、第二种迭代器遍历 效率低&#xff08;不建议使用&#xff09;五、JDK8新特性&#xff0c;通过lambda遍历Map创建Hash…

JAVA核心技术I---JAVA基础知识(查漏补缺private,static)

一&#xff1a;private对于类和对象&#xff08;同C&#xff09; private是只有这个类内部可以访问&#xff08;类的成员函数和定义初始化&#xff09; private是类之间的限制&#xff0c;而不是对对象的限制《重点》 同类对象是可以直接访问对象的私有成员 class priTest{priv…

『TensorFlow』命令行参数解析

argparse很强大&#xff0c;但是我们未必需要使用这么繁杂的东西&#xff0c;TensorFlow自己封装了一个简化版本的解析方式&#xff0c;实际上是对argparse的封装 脚本化调用tensorflow的标准范式&#xff1a; import pprint import tensorflow as tfflags tf.app.flags# 脚本…

IIS重起批处理

将以下代码保存到一个BAT文件中,执行后便可释放所有被锁定的组件。执行顺序是&#xff1a;停止&#xff37;&#xff37;&#xff37;服务&#xff0d;〉停止组件保护&#xff0d;〉开启组件保护&#xff0d;〉开启&#xff37;&#xff37;&#xff37;服务。net stop w3svc /…

RenderTree渲染树

RenderTree渲染树对类中的静态成员有很重要的关系&#xff0c;这个和多态是有很重要的关系&#xff0c;举个简单的例子&#xff0c;在游戏中&#xff0c;马里奥需要渲染&#xff0c;蘑菇也需要渲染&#xff0c;怪兽也需要渲染&#xff0c;其是串在一个树上的&#xff0c;但是不…

JAVA IO流复制文件夹及里面的所有文件

public static void main(String[] args) throws Exception {//复制到哪个路径&#xff08;path&#xff09;中String path "E:\\main";File file new File("F:\\main");copyAll(file, path);}public static void copy(File file, String path) throws E…

python RSA 加密与签名

PyCrypto装起来就简单多了&#xff0c;我是直接 sudo easy_install pycrypto 直接搞定的先生成rsa的公私钥&#xff1a;打开控制台&#xff0c;输入 openssl 再输入 genrsa -out private.pem 1024 来生成私钥接着输入 rsa -in private.pem -pubout -out public.pem 来生成公钥$…

深度解析VC中的消息(上)

消息是指什么&#xff1f;消息系统对于一个win32程序来说十分重要&#xff0c;它是一个程序运行的动力源泉。一个消息&#xff0c;是系统定义的一个32位的值&#xff0c;他唯一的定义了一个事件&#xff0c;向Windows发出一个通知&#xff0c;告诉应用程序某个事情发生了。例如…

漫谈C#之关键字(1)

每一种语言都有非常多的关键字&#xff0c;而且这些关键字也都大同小异&#xff0c;不过毕竟还是有些许的不一样。有些关键字大家碰到的多了&#xff0c;自然就熟悉了&#xff0c;但是有些关键字用得不大多&#xff0c;或者是新引入的&#xff0c;所以就不大熟悉了。我平常在用…

Python-CSS整理

CSS层叠样式表 1.格式 h1 {name:abc&#xff0c;color:red}&#xff1b; 选择器-属性-值 2.ID和类选择 #ID .类 3.CSS引用方式 link文件-外部样式表 script style-内部样式表 标签 style-内联样式 4.background背景 ~background ~-color 背景颜色 ~-repeat 是否重复 ~-pos…

利用 socket 获取 tcp 包并解析的问题。

服务器端代码如下&#xff1a;&#xff08;Java Servlet 实现&#xff09; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { OutputStream out response.getOutputStream(); try { …

Mysql排序后显示排序序号

网上找的一个比较齐全的解释案例&#xff0c;拿来记录一下 ① : 与 的区别 : 赋值的意思。在set update select 中表示赋值的意思&#xff0c;用的比较少一般都用&#xff0c;但是在用变量实现行号时&#xff08;比如本文标题获取排列序号&#xff09;&#xff0c;一定要用:…

解决Visual Studio For Mac Restore失败的问题

之前就了解到微软出了mac版的VS&#xff0c;没太多的关注&#xff0c;自己也就是使用 DotNet Core SDK VS Code 做一些小demo。 前两天发布了DotNet Core 2.0 &#xff0c;Visual Studio For Mac 7.1 之后&#xff0c;感觉可以装起来用用&#xff0c;把win下面的项目转到Core上…

应用Etherchannel扩展企业服务的高可用性

什么是Etherchannel&#xff1f;Etherchannel可以说是Cisco特有的技术&#xff0c;也就是我们在交换机以及路由器上所要配置Etherchannel就不得不使用CISCO设备。在实际工程中一般用于出口与上层设备的连接。实际上通过Etherchannel的中文名-端口绑定就很容易理解&#xff0c;它…