H5 常见问题汇总及解决方法
来源:互联网 发布:u盘坏了找回数据多少钱 编辑:程序博客网 时间:2024/06/07 12:14
Meta基础知识:
H5页面窗口自动调整到设备宽度,并禁止用户缩放页面
1.HTML页面结构
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />// width 设置viewport宽度,为一个正整数,或字符串‘device-width’// height 设置viewport高度,一般设置了宽度,会自动解析出高度,可以不用设置// initial-scale 默认缩放比例,为一个数字,可以带小数// minimum-scale 允许用户最小缩放比例,为一个数字,可以带小数// maximum-scale 允许用户最大缩放比例,为一个数字,可以带小数// user-scalable 是否允许手动缩放
2.JS动态判断
var phoneWidth = parseInt(window.screen.width);var phoneScale = phoneWidth/640;var ua = navigator.userAgent;if (/Android (\d+\.\d+)/.test(ua)){ var version = parseFloat(RegExp.$1); if(version>2.3){ document.write('<meta name="viewport" content="width=640, minimum-scale = '+phoneScale+', maximum-scale = '+phoneScale+', target-densitydpi=device-dpi">'); }else{ document.write('<meta name="viewport" content="width=640, target-densitydpi=device-dpi">'); }} else { document.write('<meta name="viewport" content="width=640, user-scalable=no, target-densitydpi=device-dpi">');}
空白页基本meta标签
<!-- 设置缩放 --><meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no, minimal-ui" /><!-- 可隐藏地址栏,仅针对IOS的Safari(注:IOS7.0版本以后,safari上已看不到效果) --><meta name="apple-mobile-web-app-capable" content="yes" /><!-- 仅针对IOS的Safari顶端状态条的样式(可选default/black/black-translucent ) --><meta name="apple-mobile-web-app-status-bar-style" content="black" /><!-- IOS中禁用将数字识别为电话号码/忽略Android平台中对邮箱地址的识别 --><meta name="format-detection"content="telephone=no, email=no" />其他meta标签<!-- 启用360浏览器的极速模式(webkit) --><meta name="renderer" content="webkit"><!-- 避免IE使用兼容模式 --><meta http-equiv="X-UA-Compatible" content="IE=edge"><!-- 针对手持设备优化,主要是针对一些老的不识别viewport的浏览器,比如黑莓 --><meta name="HandheldFriendly" content="true"><!-- 微软的老式浏览器 --><meta name="MobileOptimized" content="320"><!-- uc强制竖屏 --><meta name="screen-orientation" content="portrait"><!-- QQ强制竖屏 --><meta name="x5-orientation" content="portrait"><!-- UC强制全屏 --><meta name="full-screen" content="yes"><!-- QQ强制全屏 --><meta name="x5-fullscreen" content="true"><!-- UC应用模式 --><meta name="browsermode" content="application"><!-- QQ应用模式 --><meta name="x5-page-mode" content="app"><!-- windows phone 点击无高光 --><meta name="msapplication-tap-highlight" content="no">
移动端如何定义字体font-family
@ --------------------------------------中文字体的英文名称@ 宋体 SimSun@ 黑体 SimHei@ 微信雅黑 Microsoft Yahei@ 微软正黑体 Microsoft JhengHei@ 新宋体 NSimSun@ 新细明体 MingLiU@ 细明体 MingLiU@ 标楷体 DFKai-SB@ 仿宋 FangSong@ 楷体 KaiTi@ 仿宋_GB2312 FangSong_GB2312@ 楷体_GB2312 KaiTi_GB2312 @@ 说明:中文字体多数使用宋体、雅黑,英文用Helveticabody { font-family: Microsoft Yahei,SimSun,Helvetica; }
打电话发短信写邮件怎么实现
// 一、打电话<a href="tel:0755-10086">打电话给:0755-10086</a>// 二、发短信,winphone系统无效<a href="sms:10086">发短信给: 10086</a>// 三、写邮件<a href="mailto:863139978@qq.com">点击我发邮件</a>//2.收件地址后添加?cc=开头,可添加抄送地址(Android存在兼容问题)<a href="mailto:863139978@qq.com?cc=zhangqian0406@yeah.net">点击我发邮件</a>//3.跟着抄送地址后,写上&bcc=,可添加密件抄送地址(Android存在兼容问题)<a href="mailto:863139978@qq.com?cc=zhangqian0406@yeah.net&bcc=384900096@qq.com">点击我发邮件</a>//4.包含多个收件人、抄送、密件抄送人,用分号(;)隔开多个邮件人的地址<a href="mailto:863139978@qq.com;384900096@qq.com">点击我发邮件</a>//5.包含主题,用?subject=<a href="mailto:863139978@qq.com?subject=邮件主题">点击我发邮件</a>//6.包含内容,用?body=;如内容包含文本,使用%0A给文本换行 <a href="mailto:863139978@qq.com?body=邮件主题内容%0A腾讯诚信%0A期待您的到来">点击我发邮件</a>//7.内容包含链接,含http(s)://等的文本自动转化为链接<a href="mailto:863139978@qq.com?body=http://www.baidu.com">点击我发邮件</a>//8.内容包含图片(PC不支持)<a href="mailto:863139978@qq.com?body=<img src='images/1.jpg' />">点击我发邮件</a>//9.完整示例<a href="mailto:863139978@qq.com;384900096@qq.com?cc=zhangqian0406@yeah.net&bcc=993233461@qq.com&subject=[邮件主题]&body=腾讯诚邀您参与%0A%0Ahttp://www.baidu.com%0A%0A<img src='images/1.jpg' />">点击我发邮件</a>
移动端touch事件(区分webkit和winphone)
// 以下支持webkittouchstart——当手指触碰屏幕时候发生。不管当前有多少只手指touchmove——当手指在屏幕上滑动时连续触发。通常我们再滑屏页面,会调用event的preventDefault()可以阻止默认情况的发生:阻止页面滚动touchend——当手指离开屏幕时触发touchcancel——系统停止跟踪触摸时候会触发。例如在触摸过程中突然页面alert()一个提示框,此时会触发该事件,这个事件比较少用//TouchEvent说明:touches:屏幕上所有手指的信息targetTouches:手指在目标区域的手指信息changedTouches:最近一次触发该事件的手指信息touchend时,touches与targetTouches信息会被删除,changedTouches保存的最后一次的信息,最好用于计算手指信息//参数信息(changedTouches[0])clientX、clientY在显示区的坐标target:当前元素//事件响应顺序ontouchstart > ontouchmove > ontouchend > onclick
点击元素产生背景或边框怎么去掉
//ios用户点击一个链接,会出现一个半透明灰色遮罩, 如果想要禁用,可设置-webkit-tap-highlight-color的alpha值为0去除灰色半透明遮罩;//android用户点击一个链接,会出现一个边框或者半透明灰色遮罩, 不同生产商定义出来额效果不一样,可设置-webkit-tap-highlight-color的alpha值为0去除部分机器自带的效果;//winphone系统,点击标签产生的灰色半透明背景,能通过设置<meta name="msapplication-tap-highlight" content="no">去掉;//特殊说明:有些机型去除不了,如小米2。对于按钮类还有个办法,不使用a或者input标签,直接用div标签a,button,input,textarea { -webkit-tap-highlight-color: rgba(0,0,0,0); -webkit-user-modify:read-write-plaintext-only; //-webkit-user-modify有个副作用,就是输入法不再能够输入多个字符} // 也可以 * { -webkit-tap-highlight-color: rgba(0,0,0,0); }//winphone下<meta name="msapplication-tap-highlight" content="no">
美化表单元素
//一、使用appearance改变webkit浏览器的默认外观input,select { -webkit-appearance:none; appearance: none; }//二、winphone下,使用伪元素改变表单元素默认外观//1.禁用select默认箭头,::-ms-expand修改表单控件下拉箭头,设置隐藏并使用背景图片来修饰select::-ms-expand { display:none; }//2.禁用radio和checkbox默认样式,::-ms-check修改表单复选框或单选框默认图标,设置隐藏并使用背景图片来修饰input[type=radio]::-ms-check,input[type=checkbox]::-ms-check { display:none; }//3.禁用pc端表单输入框默认清除按钮,::-ms-clear修改清除按钮,设置隐藏并使用背景图片来修饰input[type=text]::-ms-clear,input[type=tel]::-ms-clear,input[type=number]::-ms-clear { display:none; }
移动端字体单位font-size选择px还是rem
// 如需适配多种移动设备,建议使用rem。以下为参考值:html { font-size: 62.5%; } //10*16 = 62.5%//设置12px字体 这里注意在rem前要加上对应的px值,解决不支持rem的浏览器的兼容问题,做到优雅降级body { font-size:12px; font-size:1.2rem; }
超实用的CSS样式
//去掉webkit的滚动条——display: none;//其他参数::-webkit-scrollba //滚动条整体部分::-webkit-scrollbar-thumb //滚动条内的小方块::-webkit-scrollbar-track //滚动条轨道::-webkit-scrollbar-button //滚动条轨道两端按钮::-webkit-scrollbar-track-piece //滚动条中间部分,内置轨道::-webkit-scrollbar-corner //边角,两个滚动条交汇处::-webkit-resizer //两个滚动条的交汇处上用于通过拖动调整元素大小的小控件// 禁止长按链接与图片弹出菜单a,img { -webkit-touch-callout: none } // 禁止ios和android用户选中文字html,body {-webkit-user-select:none; user-select: none; }// 改变输入框placeholder的颜色值::-webkit-input-placeholder { /* WebKit browsers */color: #999; }:-moz-placeholder { /* Mozilla Firefox 4 to 18 */color: #999; }::-moz-placeholder { /* Mozilla Firefox 19+ */color: #999; }:-ms-input-placeholder { /* Internet Explorer 10+ */color: #999; }input:focus::-webkit-input-placeholder{ color:#999; }// android上去掉语音输入按钮input::-webkit-input-speech-button {display: none}// 阻止windows Phone的默认触摸事件/*说明:winphone下默认触摸事件事件使用e.preventDefault是无效的,可通过样式来禁用,如:*/html { -ms-touch-action:none; } //禁止winphone默认触摸事件
定位的坑
//fixed定位//1.ios下fixed元素容易定位出错,软键盘弹出时,影响fixed元素定位//2.android下fixed表现要比iOS更好,软键盘弹出时,不会影响fixed元素定位//3.ios4下不支持position:fixed//解决方案:使用[Iscroll](http://cubiq.org/iscroll-5),如:<div id="wrapper"> <ul> <li></li> ..... </ul></div><script src="iscroll.js"></script><script> var myscroll; function loaded(){ myscroll=new iScroll("wrapper"); } window.addEventListener("DOMContentLoaded",loaded,false);</script//position定位//Android下弹出软键盘弹出时,影响absolute元素定位//解决方案:var ua = navigator.userAgent.indexOf('Android');if(ua>-1){ $('.ipt').on('focus', function(){ $('.css').css({'visibility':'hidden'}) }).on('blur', function(){ $('.css').css({'visibility':'visible'}) })}
开启硬件加速
//目前,像Chrome/Filefox/Safari/IE9+以及最新版本Opera都支持硬件加速,当检测到某个DOM元素应用了某些CSS规则时就会自动开启,从而解决页面闪白,保证动画流畅。.css { -webkit-transform: translate3d(0,0,0); -moz-transform: translate3d(0,0,0); -ms-transform: translate3d(0,0,0); transform: translate3d(0,0,0);}
渲染优化
//1.禁止使用iframe(阻塞父文档onload事件)//2.禁止使用gif图片实现loading效果(降低CPU消耗,提升渲染性能)//使用CSS3代码代替JS动画;//开启GPU加速;//使用base64位编码图片(不小图而言,大图不建议使用) // 对于一些小图标,可以使用base64位编码,以减少网络请求。但不建议大图使用,比较耗费CPU。小图标优势在于: //1.减少HTTP请求; //2.避免文件跨域; //3.修改及时生效;
本文转载地址:http://www.qdfuns.com/notes/40762/16e943cc5d8d03c72de20d58cd68f8f9.html
阅读全文
0 0
- H5 常见问题汇总及解决方法
- H5项目常见问题汇总及解决方案
- H5项目常见问题汇总及解决方案
- H5项目常见问题汇总及解决方案
- H5项目常见问题汇总及解决方案
- H5项目常见问题汇总及解决方案
- H5项目常见问题汇总及解决方案
- H5项目常见问题汇总及解决方案
- H5项目常见问题汇总及解决方案
- H5项目常见问题汇总及解决方案
- H5项目常见问题汇总及解决方案
- H5项目常见问题汇总及解决方案
- H5项目常见问题汇总及解决方案
- H5项目常见问题汇总及解决方案
- H5项目常见问题汇总及解决方案
- H5项目常见问题汇总及解决方案
- H5项目常见问题汇总及解决方案
- H5项目常见问题汇总及解决方案
- Servlet小总结。
- android 获取系统通话记录
- CGI
- es6 扩展运算符 三个点(...)
- CS架构和BS架构的区别
- H5 常见问题汇总及解决方法
- 解决第一次连接MySQL连不上和连接速度慢
- meta标签的功能
- Mybatis的详细配置
- Multiply
- MySQL快速复制数据库的方法
- 心率检测实现报告(三)
- 用户画像-构建步骤
- burpsuite安装详解