一些问题阐述
meta 基础知识
- H5 页面窗口自动调整到设备宽度,并禁止用户缩放页面
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
- 忽略将页面中的数字识别为电话号码
<meta name="format-detection" content="telephone=no" />
- 忽略 Android 平台中对邮箱地址的识别
<meta name="format-detection" content="email=no" />
- 当网站添加到主屏幕快速启动方式,可隐藏地址栏,仅针对 ios 的 safari
<meta name="apple-mobile-web-app-capable" content="yes" />
<!-- ios7.0版本以后,safari上已看不到效果 -->
- viewport 模板 ———— 通用
1 |
|
常见问题
移动端如何定义字体 font-family
中文字体使用系统默认即可,英文用 Helvetica/* 移动端定义字体的代码 */
body{font-family:Helvetica;}
移动端字体单位 font-size 选择 px 还是 rem
对于只需要适配少部分手机设备,且分辨率对页面影响不大的,使用 px 即可
对于需要适配各种移动设备,使用 rem,例如只需要适配 iPhone 和 iPad 等分辨率差别比较挺大的设备
/_ 长宽占位 rem 算法, 根据 root 的 rem 来计算各元素相对 rem, 默认 html 750/10 = 75px _/
可以参考 > http://www.cnblogs.com/well-nice/p/5509589.html
1 | updataHtml(); |
移动端 click 屏幕产生 200-300 ms 的延迟响应
在 IOS safari 下,大概为 300 毫秒,IOS 自带的双击页面放大,点击完成第一次时,会等待第二次点击,页面需要过一段时间才响应,给用户慢体验感觉,对于 web 开发者来说是,页面 js 捕获 click 事件的回调函数处理,需要 300ms 后才生效,也就间接导致影响其他业务逻辑的处理
- fastclick 可以解决在手机上点击事件的 300ms 延迟
- zepto 的 touch 模块,tap 事件也是为了解决在 click 的延迟问题
触摸事件的响应顺序
ontouchstart
ontouchmove
ontouchend
onclick
解决 300ms 延迟的问题,也可以通过绑定 ontouchstart 事件,加快对事件的响应
什么是 Retina 显示屏,带来了什么问题
retina:一种具备超高像素密度的液晶屏,同样大小的屏幕上显示的像素点由 1 个变为多个,如在同样带下的屏幕上,苹果设备的 retina 显示屏中,像素点 1 个变为 4 个
在高清显示屏中的位图被放大,图片会变得模糊,因此移动端的视觉稿通常会设计为传统 PC 的 2 倍
设计稿切出来的图片长宽保证为偶数,并使用 backgroud-size 把图片缩小为原来的 1/2
1 | //例如图片宽高为:200px*200px,那么写法如下 |
其它元素的取值为原来的 1/2,例如视觉稿 40px 的字体,使用样式的写法为 20px
1 | .css { |
ios 系统中元素被触摸时产生的半透明灰色遮罩怎么去掉
ios 用户点击一个链接,会出现一个半透明灰色遮罩, 如果想要禁用,可设置-webkit-tap-highlight-color 的 alpha 值为 0,也就是属性值的最后一位设置为 0 就可以去除半透明灰色遮罩
1 | a, |
部分 android 系统中元素被点击时产生的边框怎么去掉
android 用户点击一个链接,会出现一个边框或者半透明灰色遮罩, 不同生产商定义出来额效果不一样,可设置-webkit-tap-highlight-color 的 alpha 值为 0 去除部分机器自带的效果
1 | a,button,input,textarea{ |
兼容性不是很好
winphone 系统 a、input 标签被点击时产生的半透明灰色背景怎么去掉、
1 | <meta name="msapplication-tap-highlight" content="no" /> |
webkit 表单元素的默认外观怎么重置
1 | .css { |
伪元素改变 number 类型 input 框的默认样式
1 | input[type='number']::-webkit-textfield-decoration-container { |