上周开始接触移动web开发,默默的掉进了很多坑里面。本文主要总结本周遇到的坑以及如何填坑。

  1、px与rem换算。

  设计稿的宽度一般是640px,而iphone是320px,所以测量设计稿的结果首先要除2,这时的单位还是px,下一步要转换成rem,怎么转换呢?得看根节点怎么设置的。

  首先,任意浏览器的默认字体高都是16px,所有未经调整的浏览器都符合: 1em=16px;那么10px=0.625em;于是为了便于计算,可以为body设置font-size=62.5%;到这里,换算关系为10px=1rem。

  综上,设计稿的px,要除20变成rem,所以,我们设置一个变量unit=20,在less里面直接将设计稿的数值除以@unit即可。

  但并不是所有的地方都需要转换成rem,有些地方还是需要用px,比如某些不需要跟着设备变化而变化的文字,在这些地方的边距有的得用px,有的得用rem,还得多写代码才能如鱼得水。

  由于没有按照上述方法做,于是我挑战了自己的心算能力和耐性,哈哈哈……

2、1px线条在retina屏显示2px;

  这个问题在上一篇《移动web开发基础——像素》里面说明过产生原因。之所以还掉坑里,是因为开发时就忘了这个梗了……

  知道原因之后,我们就来解决问题。要在手机上呈现1px,我们得写0.5px,由于并不是所有的ios系统都支持0.5px,所以为了实现0.5px,我们可以把1px缩0.5倍,横线就纵向缩scaleY(0.5),竖线就横向缩scaleX(0.5)。

  其次是关于线条的插入方式,为了不影响html结构,最好通过before或after的伪类来插入空内容,然后设置边框1px,或宽高背景什么的。

  

  3、a链接按上去出现黑色背景;

  这个问题一行代码搞定:-webkit-tap-highlight-color:transparent;把它加到a的样式上去。

  4、html里不要使用img标签,图片都放到样式里面当背景。好处是可以二次压缩图片。

  

  移动开发还需积累经验啊,第一次花了好多时间各种量设计稿各种改代码各种找大神各种找资料,but,I enjoy it!

移动web开发填坑(一)的更多相关文章

  1. Java web 开发填坑记 2 -如何正确的创建一个Java Web 项目

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/72566261 本文出自[赵彦军的博客] Java web 开发填坑记 1-如何正确 ...

  2. Java Web 开发填坑记- 如何正确的下载 Eclipse

    一直以来,做 Java web 开发都是用 eclipse , 可是到 eclipse 官网一看,我的天 http://www.eclipse.org/downloads/eclipse-packag ...

  3. Android项目开发填坑记-Fragment的onBackPressed

    Github版 CSDN版 知识背景 Fragment在当前的Android开发中,有两种引用方式,一个是 Android 3.0 时加入的,一个是supportV4包中的.这里简称为Fragment ...

  4. Android项目开发填坑记-Fragment的onAttach

    背景 现在Android开发多使用一个Activity管理多个Fragment进行开发,不免需要两者相互传递数据,一般是给Fragment添加回调接口,让Activity继承并实现. 回调接口一般都写 ...

  5. Android项目开发填坑记-so文件引发的攻坚战

    故事的最初 我负责的项目A要求有播放在线视频的功能,当时从别人的聊天记录的一瞥中发现百度有相关的SDK,当时找到的是Baidu-T5Player-SDK-Android-1.4s,项目中Demo的so ...

  6. Flutter 开发填坑指南

    引言 第一次在使用Flutter是在Ubuntu机器上,但是因为Android Studio还有Sdk配置问题,flutter doctor总是在这一步报错...最近又在win10上配了一下环境(真香 ...

  7. 微信小程序开发填坑指南V1

    近期用了一星期的时间,开发了一个小程序.小程序名称是:小特Jarvis,取自钢铁侠的管家. 后台采用C#编写,WebAPI接口.其实开发时间并不多,小程序本身提供的API,相比公众号的API来说,已经 ...

  8. 微信小程序开发填坑

    1.模拟器和真机的差异 在开发的过程中,在模拟器上表现得好好的,在真机上却出问题的例子数不胜数.譬如动画的使用,cover-view上面使用定位,在模拟器好好的,在真机却错乱等等等等.造成这些错乱主要 ...

  9. [AI开发]DeepStream开发填坑记录

    下面是在deepstream使用过程中碰到的一些坑: (1)Pipeline中的Sink如果需要编码存文件或者推rtmp的流,注意控制编码的参数,编码质量不要太高.否则可能Sink带不动,整个Pipe ...

随机推荐

  1. iOS开发人员:事实上你还有非常多东西须要学

    iOS 新特性总结(since iOS6) iOS 6 1.废除viewDidUnLoad 收到内存警告须要到didReceiveMemoryWarning中处理 [小技巧] -(void)didRe ...

  2. 大数据处理之道 (htmlparser获取数据<一>)

    一:简单介绍 (1)HTML Parser是一个用于解析Html的Java的库.可採用线性或嵌套两种方式.主要用于网页的转换或提取,他有一些特性:过滤器filter,遍历器visitors,通常的标签 ...

  3. 用css解决Unigui在IE系列浏览器中字体变小的问题(设置UniServeModule的customcss属性)

    Unigui运行在chrome浏览器下可以有最佳的效果,但用ie打开用unigui做的项目会发现字体明显小一截,可以用自定义css来解决这个问题. 可以在UniServeModule的customcs ...

  4. 编译FreePascal源代码(摘录自邮件询问)

    为了尝试编译FreePascal,我搜了官方文档,并给几位作者都发了邮件询问,目前结果如下: http://wiki.lazarus.freepascal.org/Getting_Lazarus#Co ...

  5. 设计模式-(16)模版模式 (swift版)

    一,概念: 定义一个算法中的操作框架,而将一些步骤延迟到子类中.使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤.(Define the skeleton of an algorithm i ...

  6. XMU 1056 瞌睡 vs 听课 【动态规划】

    1056: 瞌睡 vs 听课 Time Limit: 500 MS  Memory Limit: 64 MBSubmit: 19  Solved: 6[Submit][Status][Web Boar ...

  7. MySql安装与使用图文教程

      2.下载完成后将其解压到你想要安装的路径下,例如我的解压到D:\MySql\mysql-5.7.12-winx64\路径下,刚解压完应该是下图这些文件夹:最好解压到根目录. 5.新建一个my.in ...

  8. CentOS 7.2更改网卡名称

    背景 没啥背景,就是VMWare装的CentOS虚拟机的自带网卡名有点乱,想重新定义一下. 环境 1.VMWare虚拟机 6张网卡 2.系统 [root@localhost ~]# cat /etc/ ...

  9. touch all contents in a folder recursively

    https://superuser.com/questions/598163/powershell-touch-all-files-newer-than Powershell to use Unix ...

  10. 删除oracle数据库用户的dba权限(当出现同一用户DBA可以登录,normal不能登录)“无法对SYS拥有的对象创建触发器”

    系统报错:“无法对SYS拥有的对象创建触发器”,搞不懂是什么原因了,到底这触发器要用什么用户才能建立啊? ORA-04089: 无法对 SYS 拥有的对象创建触发器 第一种方式: 首先,用sys用户a ...