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

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 买回来小鸽子开家我敢了怎么办 小鸽子出壳后母鸽就不孵了怎么办 狗狗在笼子里一直叫怎么办 养了一年母鸽子不配对怎么办 血管翳云翳斑翳长满眼睛怎么办 鸽子训放50公里突然下雨了怎么办 安卓手机反应慢又卡怎么办 tcl安卓系统电视反应慢怎么办 狼人杀警长竞选一直平票怎么办 去驾校投诉教练被教练报复怎么办 哈尔滨机场大巴六点的飞机怎么办 山东德州恩城镇的农民怎么办养老险 我的世界联机平台房间进不去怎么办 验车时间过了3天怎么办 在携程订的机票和酒店不能退怎么办 千牛工作台中旺旺登录失败怎么办 掌通家园换手机号了忘了更改怎么办 qq注销了后绑定的全民k歌怎么办 小米账号绑定的手机号注销了怎么办 微信账号注销后绑定的手机号怎么办 微信账号不想用了注销不了怎么办 苹果手机掉了捡到不还怎么办 在工作中把和别人结下梁子了怎么办 在阿里巴巴上买的货物没发货怎么办 做了下颌角一边脸反复肿怎么办 玩广东11选5输50万怎么办 玩广东11选5输了十几万怎么办 新办公楼装修好就要搬进去怎么办 oppo手机上的黄页删了怎么办 小米不小心把手机联系人删了怎么办 58同城小区名输不了怎么办 e路发注册直接有积分怎么办 大众速腾的不锈钢圈被碰花了怎么办 公司卡着生育险不给怎么办 济南图书馆借书超过期限了怎么办 淘宝解绑支付宝支付密码不对怎么办 微博支付宝支付密码忘记了怎么办 图虫签约师通过了认证标识怎么办 签证做假工作证明资料被拒怎么办 在广州办个建设厅电工证怎么办 水利考的五大员证到有效期怎么办