移动端H5页面开发坑点指南学科资讯

028-86261949.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#FFB700;}.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#F5F5F5;}

只需要将画笔根据像素比缩放即可

经研究发现是devicePixelRatio作怪,因为手机分辨率太小,如果按照分辨率来显示网页字会非常小,所以苹果就把iPhone4的960640分辨率在网页里只显示了480320,这样devicePixelRatio=2;现在android比较乱,有1.5/2/3等,想让图片在手机里显示更为清晰必须使用2x的背景图来代替img标签(一般情况都是用2倍),例如一个div的宽高是100100,背景图必须得200200,然后background-size:contain;,这样显示出来的图片就比较清晰了;代码如下:

background:url(../images/icon/all.png)no-repeatcentercenter;-webkit-background-size:50px50px;background-size:50px50px;display:inline-block;width:100%;height:50px;复制代码

复制代码

h5网页input的type设置为number一般会产生三个问题:

functioncheckTextLength(obj,length){if(obj.value.length>length){obj.value=obj.value.substr(0,length);}}复制代码

//input中type=number一般会自动生成一个上下箭头,点击上箭头默认增加一个step,点击下箭头默认会减少一个step;number中默认step是1,也就是step=0.01可以允许输入2位小数,并且点击上下箭头分别增加0.01和减少0.01;step和min一起使用时数值必须在min和max之间复制代码

去除input默认样式的方法:

input,textarea{border:0;-webkit-appearance:none;//可同时屏蔽输入框怪异的内阴影,解决iOS下无法修改按钮样式,测试还发现,加了此属性后,iOS下默认还是有圆角的,不过可以用border-radius属性修改}复制代码

问题1:右对齐实现

设置如下属性

selectoption{direction:rtl;}复制代码

::-ms-expand修改表单控件下拉箭头,设置隐藏并使用背景图片来修饰select::-ms-expand{display:none;}复制代码

由于自动播放网页中的音频或视频会给用户带来困扰或不必要的流量消耗,所以苹果系统和安卓系统通常都会禁止自动播放和使用JS的触发播放,必须由用户来触发才播放;解决方法思路:先通过用户touchstart触碰触发播放并暂停(让音频开始加载),后面用JS再操作就没问题了;解决代码:

1.尽可能地使用合成属性transform和opacity来设计CSS3动画,不使用position的left和top来定位

2.开启硬件加速

-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0);复制代码

解决方法如下:

1.父元素设置为overflow:hidden;

2.父元素设置为display:inline-block;等

这里两种方法都是通过设置css属性将浮动元素的父元素变成BFC(块级格式化上下文)元素,使子元素高度可以撑开父元素;不过最好使用方法1,因为inline-block元素本身会自带一些宽高度撑开其本身

点击浏览器的回退有时候不会自动执行js,特别是在mobilesafari中;这与往返缓存(bfcache)有关系,解决方法:

window.onunload=function(){};复制代码

在IOS下fixed定位在软键盘顶起时会失效,所以我们在开发时统一使用absolute代替

你的浏览器还不支持哦//音频,写法一//音频,写法二//优先播放音乐bg.ogg,不支持在播放bg.mp3复制代码

这个是苹果系统限制默认不允许自动播放音频/视频,需要点一下触发play()事件才能播放;那么我们可以在页面onload后触发播放事件:

小结:

1.audio元素的autoplay属性在IOS及Android上无法使用,在PC端正常

2.audio元素没有设置controls时,在IOS及Android会占据空间大小,而在PC端Chrome是不会占据任何空间

问题4:Safari浏览器自动播放

H5页面一般都会有BGM,也会提供一个旋转的音乐图标供用户开启关闭音乐;我们希望当用户点击音乐按钮时图标停止旋转,再点图标顺着之前停止的位置继续跑动画;animation-play-state是最简便的方式,然而ios不支持

目前的解决方案是:音乐图标负责跑动画,图标父级元素负责记录停止时的转动值

解决:加入样式可禁止用户进行复制,ios和一般的安卓都可以解决

-webkit-touch-callout:none;//系统默认菜单被禁用;可以实现页面因为长按弹出各种操作窗口-webkit-user-select:none;//webkit浏览器-khtml-user-select:none;//早期浏览器-moz-user-select:none;//火狐-ms-user-select:none;//IE10user-select:none;复制代码

添加完这段代码后在IOS上会有问题,这时发现input框无法正在输入内容了;造成这个原因是-webkit-user-select:none;这个属性,解决方法就是在css文件中同时设置一下input的属性,如下:

input{-webkit-user-select:auto;//webkit浏览器}复制代码

首先你可能会给页面的html和body增加了height:100%,然后就可能造成IOS上页面滑动的卡顿问题。

解决方案是:1.让html和body固定100%(或者100vh),2.然后再在内部放一个height:100%的div,设置overflow-y:auto;和-webkit-overflow-scrolling:touch;

overflow-x:auto在iOS有兼容问题,解决方法:

.scroll-box{/*模态框之类的div不能放在这个容器中,否则关闭模态框有时候关闭不了*/height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;overflow-scrolling:touch;}复制代码

a,button,input,textarea{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-modify:read-write-plaintext-only;//-webkit-user-modify有个副作用,就是输入法不再能够输入多个字符}或a,button,input,textarea{-webkit-tap-highlight-color:rgba(0,0,0,0);}

这种情况是以前遇到的,这里也说下;主要会发生在webview里多一点,当点击后退时页面以缓存形式出现,而不是刷新后的,很多情况下这不是你预期的效果,解决方法是用js:

window.onpageshow=function(evt){if(evt.persisted){document.body.style.display="none";location.reload();}};复制代码

onpageshow每次页面加载都会触发,无论是从缓存中加载还是正常加载,这是他和onload的区别;persisted判断页面是否从缓存中读出

input的placeholder会出现文本位置偏上的情况:PC端设置line-height等于height能够对齐,而移动端仍然是偏上,解决方案时是设置cssline-height:normal;

-webkit-transform-style:preserve-3d;//设置内嵌的元素在3D空间如何呈现:保留3D-webkit-backface-visibility:hidden;//设置进行转换的元素的背面在面对用户时是否可见:隐藏-webkit-perspective:1000;复制代码

复制代码

apple-mobile-web-app-capable是设置Web应用是否以全屏模式运行;语法://content设置为yesWeb应用会以全屏模式复制代码

说明:除非你先使用apple-mobile-web-app-capable指定全屏模式,否则这个meta标签不会起任何作用;如果content设置为default,则状态栏正常显示;如果设置为blank,则状态栏会有一个黑色的背景;如果设置为blank-translucent,则状态栏显示为黑色半透明;如果设置为default或blank,则页面显示在状态栏的下方,即状态栏占据上方部分;页面占据下方部分,二者没有遮挡对方或被遮挡;如果设置为blank-translucent,则页面会充满屏幕,其中页面顶部会被状态栏遮盖住(会覆盖页面20px高度,而iphone4和itouch4的Retina屏幕为40px);默认值是default。

经查发现,IOS的输入法(不管是第三方还是自带)能检测到英文或数字的keyup,但检测不到中文的keyup,在输入中文后需要点回退键才开始搜索;解决办法是用html5的oninput事件去代替keyup,通过如下代码达到类似keyup的效果;

1.修改了input:checkbox或input:radio元素的选择中状态,checked属性发生变化

2.修改了input:text或textarea元素的值,value属性发生变化

3.修改了select元素的选中项,selectedIndex属性发生变化统一使用input监听

复制代码

//input的三个属性autocomplete:默认为on,代表是否让浏览器自动记录输入的值,可以在input中加入autocomplete="off"来关闭记录,保密输入内容;autocapitalize:自动大小写;autocorrect:纠错

iOS浏览器横屏时会重置字体大小,设置text-size-adjust为none可以解决iOS上的问题,但桌面版Safari的字体缩放功能会失效,因此最佳方案是将text-size-adjust为100%

-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%;复制代码

针对此种情况只需对不触发click事件的元素添加一行css代码即可

调试发现2019/10/21等同2019-10-2100:00:00,也就是说ios默认就是从0开始计算的,我们不需要设置后面的时分秒为00:00:00

iOS(safari)有时候某个标签绑定点击事件无效,加上空的onclick=""就好了,如:

THE END
1.解析小程序和H5打造婚恋交友的区别,哪个更适合开发交友系统小程序是一种以微信为入口,不需下载安装即可使用的APP,用户用微信扫一扫或者搜一下小程序名称即可打开该APP。自从微信推出公众号以来,用户在公众号里集成程度越来越高,种类繁多、功能复杂。它和H5、app、有什么区别? 小程序和H5的区别: 1.“老板”不一样,H5是由W3C做的一个开放标准规范,微信小程序是腾讯自己的https://www.bilibili.com/read/cv40003243
2.H5与Web端测试的异同点H5与web的区别? (区分app里面嵌入的h5,或者是web端嵌入的h5,我先说下APP端嵌入的h5和web端相同的),h5和web,从测试流程来讲,它们的主流程是一样的,都是要经过需求分析、评审、案例编写、测试bug跟踪,预生产上线等流程,(不同的是一个是app嵌入的h5,可以用浏览器打开单独测试,或者是嵌入到APP里面,需要测试的https://blog.csdn.net/m0_74038875/article/details/128827783
3.h5和web前端有什么区别呀?在技术细节上,h5实际上是web前端技术集合中的一个组成部分,它是html的第五个版本。但是,由于国内某些非专业人士的用语习惯,h5在某些语境下被误用为前端的代名词,或者用来指代一些移动端的浏览器网页。 因此,在遇到h5这个词时,我们需要根据上下文来判断它到底是指前端技术,还是指html的第五个版本。这也体现了汉语的https://www.yoojia.com/ask/17-14446914914668262071.html
4.web前端跟h5有什么区别?Worktile社区H5技术是Web前端开发的一个重要组成部分,用于实现更高级的功能和效果,如音视频播放、地理定位、离线存储等。 应用领域: Web前端开发广泛应用于各种网站和Web应用程序的开发,包括企业门户、电子商务、社交媒体、新闻和娱乐等。 H5技术主要用于移动端应用开发,包括手机网页、应用内嵌网页和移动应用等。 https://worktile.com/kb/ask/799011.html
5.h5和webapp差别介绍三、H5和WebApp的区别 虽然H5和WebApp都是互联网领域中非常热门的话题,但它移动端开发vue们之间还是有很大的区别。下面,我们就来详细介绍一下。 1.技术特点不同 H5是一种新的HTML标准,它提供了更多的标签和属性,可以实现更加丰富的交互效果。WebApp则是一种基于Web技术的应用程序,它可以利用HTML、CSS、JavaScripthttps://www.yimenapp.com/kb-yimen/18276/
6.h5前端和web前端开发有什么区别通过岗位职责、工作内容,告诉你h5前端和web前端开发的区别?还为你对比h5前端和web前端开发的学历要求、经验要求、工资待遇,为你揭晓h5前端和web前端开发哪个好? 最新招聘岗位职责工资收入 h5前端 web前端开发 工作职责: 1、负责公司系统h5端、微信公众号的功能界面开发 https://www.jobui.com/gangwei/pk/h5qianduan-webqianduankaifa/
7.吃透移动端H5响应式布局深入原理到目前最佳实践方案最近写了第三个移动端 H5 的项目,准备记录下自己在 H5 项目中的一些实践探索。移动端 H5 与 PC 端开发最大的区别之一,大概就是响应式布局问题。 那么下面我们就来聊聊移动端响应式布局,了解他的来龙去脉,对现有的最佳解决方案探索吧。 H5 这个命名本身是一个很不讨巧的https://juejin.cn/post/6844904021552005128
8.h5开发和前端开发区别两者的主要区别是HTML5只是前端开发中重要的一部分技术,是前端开发的标准组件,特别是在移动端的特效开发、游戏开发,以及APP的开发方向上非常流行,两者有交集但并不完全包含。前端开发负责网站前台部分,运行在PC端,移动端等浏览器上展现给https://wap.hxsd.com/wenda/65203/
9.响应式webPC端web与移动端web(H5)兼容适配选型方案背景 项目需要,公司已经有一套PC端web,需要做一套手机端浏览器可用的,但是又想兼容pc端,适配的web项目。 以下是查阅到响应布局现成的开源模版。根据自己技术栈,vue2,js来搜索相关的开源https://www.jindouyun.cn/document/industry/article/162875
10.web前端自我介绍范文12篇(全文)1熟悉W3C标准,熟练使用弹性盒和html5+css3+@media实现响应式布局;2深入理解原生js,jQuery,熟练掌握js的面向对象的编程方式;3熟练使用angularJS,vue,深入理解MVC以及MVVM模型;4了解react,能够编写部分组件;5熟悉bootstrap,swiper,animate等前端框架;6熟悉webpack工程化打包工具,用gulp进行前端代码优化;7有独立开发微信小https://www.99xueshu.com/w/filenwoj0qvy.html
11.IOS和h5混合开发混合开发和h5的区别level的技术博客二、JSBridge做了些什么? 在Hybrid模式下,H5会经常需要使用Native的功能,比如打开二维码扫描、调用原生页面、获取用户信息等,同时Native也需要向Web端发送推送、更新状态等,而JavaScript是运行在单独的JS Context中(Webview容器、JSCore等),与原生有运行环境的隔离,所以需要有一种机制实现Native端和Web端的双向通信,这https://blog.51cto.com/u_13360/8576687
12.web前端开发岗位职责(20篇)在以前可能大部分的人都没有听过什么web前端,最多的就是网页设计或者语言开发。现在几乎所有的网络公司都有web前端的职位,甚至没有web前端都不好意思说自己是网络技术公司。那么现在学习web前端火不火呢?Web前端在公司主要是做什么呢? 先说说前端技术和后端技术的区别:用互联网来做比喻,凡是通过浏览器到用户端计算机https://www.oh100.com/peixun/Web_Services/477068.html
13.传智播客:最全web前端视频课程(包括项目实战与源码)本套课程来自传智播客(博学谷云课堂)Web前端开发课程,课程为最新流出2018年第39期完整版视频,与配套资料。全套课程共156G。 全部文件共2750个文件,如非百度云盘会员账号,可分批保存。本套课程是非常完整的Web前端学习课程,对与想学习Web前端的同学推荐学习本套课程! https://www.vipc6.com/853.html
14.前端开发岗位职责1.负责公司内部系统的前端开发工作,包括公司产品业务在WEB端 、移动端H5等的开发。 2.与UI/UE设计及后端工程师协作,高效优质完成需求和功能的实现。 3.解决开发过程中产生的浏览器兼容性问题。 4.负责前端项目的需求分析、设计、开发、上线。 5.负责建设和完善前端技术体系。 https://www.yjbys.com/hr/gangwei/3495916.html
15.原生APP和H5的优劣势及自适应设计下面介绍安卓手机如何区分原生和H5页面。 在手机「设置」-连按五次「安卓系统版本号」,即可打开「开发者选项」,打开“显示布局边界”。有布局的部分就是naive,一般一个控件一个边界框。;而H5中只使用一个webview控件,只有一个边界框。 5·名词科普 (一)什么是H5页面 https://www.jianshu.com/p/4c94d46c36d7
16.手机H5移动端WEB资源整合之meta标签移动端click屏幕产生200-300 ms的延迟响应 移动设备上的web网页是有300ms延迟的,玩玩会造成按钮点击延迟甚至是点击失效。 以下是历史原因,来源一个公司内一个同事的分享: 2007年苹果发布首款iphone上IOS系统搭载的safari为了将适用于PC端上大屏幕的网页能比较好的展示在手机端上,使用了双击缩放(double tap to zoomhttps://www.imooc.com/article/7085
17.H5混合开发手机WebApp入门:概念篇其它相关如果你开始学习手机 App 开发,就一定会听到 H5 这个词。它是目前的主流开发技术之一,容易上手,开发周期短、成本低、兼容传统 Web 开发。但是,很少有文章详细介绍,H5 到底是什么技术,有什么原理,跟其他技术的差异在哪里。 如果你开始学习手机 App 开发,就一定会听到 H5 这个词。它是目前的主流开发技术之一,容易上https://www.jb51.net/article/269124.htm
18.专门做h5的app有哪些推荐呢?专门做h5的app有哪些推荐呢? H5是指在Web前端开发中开发出的一种基于HTML5、CSS3和JavaScript的移动端网页技术。 H5 app则是基于H5技术开发出的一种 在手机上运行的应用程序。 基本介绍 H5 app 的优势在于开发成网页做app本低、跨平台,可以运行于多个移动操作系统中,如iOS、Android等。其好处在于可以更快速地https://app.60day.cn/appday/kaifaapp/33889/
19.前端工程师所需要了解的WebView腾讯云开发者社区| 导语 现如今,在做移动端 H5 开发时,少不了与 Native 之间进行交互。而在Native中,H5的承载容器为 WebView,其核心是使用 WebView 控件实现加载 url。 WebView的概念 WebView 用来展示网页的 view 组件,该组件是你运行自己的浏览器或者在你的线程中展示线上内容的基础.https://cloud.tencent.com/developer/article/2033772
20.上海移动端PC端Web端的优劣分析H5网站效果演示 目前主流技术是H5响应式,自适配硬件屏幕。H5建站推广版是一整套建站方案,集合H5响应手机、平板、电脑,微信公众号,微信小程序,微营销,增强SEO,开屏广告,数据源等等功能强大的建站系统。 移动端、PC端和Web端各有其特点和适用场景,以下是它们的优劣分析: https://www.i5800.com/shanghai/1555.html
21.我的前端之路:工具化与工程化Web前端近年来,随着浏览器性能的提升与移动互联网浪潮的汹涌而来,Web前端开发进入了高歌猛进,日新月异的时代。这是最好的时代,我们永远在前行,这也是最坏的时代,无数的前端开发框架、技术体系争妍斗艳,让开发者们陷入困惑,乃至于无所适从。Web前端开发可以追溯于1991年蒂姆·伯纳斯-李公开提及HTML描述,而后1999年W3C发布HTMhttps://www.iteye.com/news/32054