移动端页面开发资源总结及技巧
工作中常用到的移动端问题记录下来,以便后用。内容不完善,以后遇到问题会一直更新的。
一、meta标签
1、移动端页面设置视口宽度等于设备宽度,并禁止缩放(viewport视窗)
1 | <meta name='viewport' content='width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no' /> |
2、移动端页面设置视口宽度等于定宽(如640px),并禁止缩放,常用于微信浏览器页面(通常移动端设置为640*1136是最为稳妥的方式)
1 | <meta name='viewport' content='width=640,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no' /> |
3、禁止将页面中的数字识别为电话号码(format-detection格式检测)
1 | <meta name='format-detection' content='telephont=no' /> |
4、忽略android平台中对邮箱地址的识别
1 | <meta name='format-detection' content='email=no' /> |
5、当网站添加到主屏幕快速启动方式,可隐藏地址栏,仅针对ios的safari
1 | <meta name='apple-mobile-web-app-capable' content='yes' /> |
6、将网站添加到主屏幕快速启动方式,仅针对ios的safari顶端状态条的样式
1 | <meta name='apple-mobile-web-app-status-bar-style' content='black' /> |
viewport 模板
1 | <!DOCTYPE html> |
二、CSS样式技巧(CSS层叠样式表,描述HTML/XML文档的呈现,元素被渲染的问题。)
1、禁止ios和android用户选中文字
1 | .css{-webkit-user-select:none} |
2、禁止ios长按时触发系统的菜单,禁止ios&android长按时下载图片(callout调出)
1 | .css{-webkit-touch-callout:none} |
3、webkit去除表单的默认样式(appearance外观)
1 | .css{-webkit-appearance:none;} |
4、去除表单输入框placeholder的样式
1 | input::-webkit-input-placeholder{color:#000} |
5、去除android、button、input标签被点击时产生的边框&去除ios a标签被点击时产生的半透明灰色背景
1 | a,button,input{-webkit-tap-highlight-color:rgba(0,0,0,0)} |
6、iOS使用-webkit-text-size-adjust禁止调整字体大小
1 | body{-webkit-text-size-adjust:100% !important;} |
7、android上去掉语音输入按钮(speech语音演讲)
1 | input::-webkit-input-speech-button{display:none;} |
8、移动端定义字体(移动端没有微软雅黑字体)
1 | body{font-family:Helvetica;} |
9、webkit内核浏览器的文字大小调整功能(webkit内核最小字体12px)
1 | -webkit-text-size-adjust:none; |
10、去掉 input[type=search] 搜索框默认的×号
1 | input[type='search']{ |
三、其他技巧
1、手机拍照和上传图片
1 | 选择照片: |
2、取消input在ios下,输入的时候英文首字母的默认大写(autocorrect自动更正capitalize以大写字母写)
1 | <input type='text' autocapitalize='off' autocorrect='off' /> |
3、打电话发短信
1 | <a href='tel:10086'>打电话给:10086</a> |
四、CSS reset
1 | /* Colisy */ |
五、常用的公共CSS style
1 | @charset "UTF-8"; |
六、flex布局(2009年盒模型,只兼容老式的手机,目前使用2012年的flex)
1、定义弹性盒模型兼容写法
1 | /* |
2、box-orient 定义盒模型内伸缩项目的布局方向
1 | /* |
3、box-direction 定义盒模型内伸缩项目的正序(normal默认值)、倒叙(reverse)
1 | /* firefox */ |
4、box-pack 对盒子水平富裕空间的管理
1 | /* |
5、box-align 对盒子垂直富裕空间的管理
1 | /* |
6、box-ordinal-group定义伸缩项目的具体位置(ordinal序数)
1 | .box div:nth-of-type(1){ |
7、box-flex定义伸缩项目占空间的份数
1 | .box div:nth-of-type(1){ |