上周开始接触移动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. hdu 3183 A Magic Lamp(给一个n位的数,从中删去m个数字,使得剩下的数字组成的数最小(顺序不能变),然后输出)

    1.题目大意是,给你一个1000位的数,要你删掉m个为,求结果最小数. 思路:在n个位里面删除m个位.也就是找出n-m个位组成最小数 所以在区间 [0, m]里面找最小的数.相应的下标标号i 接着找区 ...

  2. 通过SQL SERVER加入系统管理员帐号

    通过SQL SERVER加入系统管理员帐号.当然是须要有足够的权限,远程链接数据库后执行脚本,脚本例如以下: /* 此代码是在master数据库下执行 添加系统管理员:mmcgzs password: ...

  3. Opengl ES 1.x NDK实例开发之七:旋转的纹理立方体

    开发框架介绍请參见:Opengl ES NDK实例开发之中的一个:搭建开发框架 本章在第六章(Opengl ES 1.x NDK实例开发之六:纹理贴图)的基础上绘制一个旋转的纹理立方体,原理和纹理贴图 ...

  4. PADs 元器件PCB建库

    直接看图就好了,上图! 有几点需要记住的: 如果没有datasheet的情况下,与焊盘相比,阻焊大0.1mm,钢网小0.1mm.或者阻焊大0.05mm,钢网等大,具体要看引脚的间距. 焊盘太大,比如1 ...

  5. Making User-Managed Backups-17.3、Making User-Managed Backups of Offline Tablespaces and Datafiles

    17.3.Making User-Managed Backups of Offline Tablespaces and Datafiles 备份离线的表空间时.须要注意下面指导原则: (1)不能离线s ...

  6. JavaScript语言基础12

    使用if语句时.假设碰到很多个条件时,就不应该继续使用if语句了,JavaScript提供了一个更高效的替代方案,那就是switch语句,我们先看看switch语句的模板: <HTML> ...

  7. 解决oracle 表被锁住问题

    想修改Oracle下的某一张表,提示 "资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效" 看上去是锁住了. 用系统管理员登录进数据库,然后 SELECT sid, ...

  8. mysql16---读写分离

    读写分离(负载平衡)(读写分离肯定要用到主从复制) 如果数据库压力很大,一台机器支撑不了,那么可以用mysql复制实现多台机器同步,将数据库的压力分散. 分表不能解决并发量大的问题. Sql语句发过来 ...

  9. ubuntu切换中英文通用方法,ubuntu中文语言

    1:点击桌面右上角的齿轮,选择“system settings”进入系统设置界面

  10. Linux MTD下获取Nand flash各个参数的过程的详细解析【转】

    本文转载自:https://www.crifan.com/files/doc/docbook/nand_get_type/release/html/nand_get_type.html 文章不错可以看 ...