1.1px在移动端的解决方案
最开始当然从移动端的兼容性适配开始了,关于的详细解释,在我上一篇博客中已经大概讲了一下,1px在移动端的解决方案,问题产生的原因就是在于不同dpr的设备上,1px的css样式像素会产生不同的效果。
对于老项目,最好的解决方案可以使用css3中的transform结合伪类::after/::before来进行缩放解决; 对于新项目,可以使用viewport+rem,可以全局性的设置缩放比例,并设定全局根元素的rem, 头部的原始状态设为:
2 微信分享功能,偶现初始化失败,默认会直接分享当前window.location页面,使用vue中的路由router跳转无法获取当前页面。
绝决方案针对微信jssdk的初始化失败的情况,vue项目中无法默认分享当前页面,解决方案是,跳转当前需要分享的页面时不使用vue-router路由跳转,而是window.location,href跳转,改变window.location的值,实现初始化失败时默认分享当前页面
3## app内嵌H5,当app在后运行时,h5页面的所有js进程都会被停止
比如当我在内嵌的H5页面写一个定时器时,当我回到桌面,(这里并非是杀掉app,而是后台运行app),定时器就会暂时停止。只有当我回到app里面,定时器就会接着刚才的进程继续打印(这里并非是从头执行,而是接着执行)
4.移动端文字实现两端对齐,使用text-align-last在ios会有兼容性问题
使用text-align-last:justify;在安卓上面表现没有问题,但是在ios上面不会对齐。 解决办法:在当前的元素后面添加一个after伪类,并给当前的元素设置行高为0,如下:
5.offsetLeft和offsetTop的使用
offsetLeft值跟offsetTop值的获取跟父级元素没关系,而是跟其上一级的定位元素(除position:static;外的所有定位如fixed,relative,absolute)有关系,是距离上一个使用定位元素的距离
6.scrollTo(0,0)和scrollTop=0
苹果低版本的手机上不支持获取使用dom.scrollTo(0,0),使用该方法会报错。 换言之,使用dom.scrollTop=0,就可以正常使用
7 用position:absolute/fixed;把一个按钮固定在页面的底部,在android系统中,当调用输入法时,该按钮会被顶起
解决办法: 使用媒体查询@media screen and (max-width:400px){}当页面高度小于某一个值时,给元素一个top值 不同浏览器默认margin,padding不同。 解决办法: *{margin:0;padding:0;}
8 不同浏览器的最小字体不同,有的是10px,有的是12px或者16px
解决办法: 设置字体时,尽量不要小于12px,如果一定要小于12px,可以使用transform:sacle()进行缩放
9透明度opacity
解决办法: IE8 以及更早的版本支持替代的 filter 属性。例如:filter:Alpha(opacity=50)
10 使用url传参时,特殊字符无法识别?如"#"
解决办法: 传参时,使用encodeURIComponent(url)转义,解析url用 decodeURIComponent(url)
11click事件延迟的问题
移动端的点击事件都会有300ms延迟,是因为浏览器在等待你是否执行双击,但此延迟导致用户体验不好 解决办法: 用script标签引入fastclick库去除延迟 禁止缩放 user-scable=‘no’
12 浮动子元素撑开父元素盒子高度
解决办法: 1.父元素设置为 overflow: hidden; 2.父元素设置为 display: inline-block;
13 input的placeholder文本位置偏上的情况
**解决办法**:\
PC端设置line-height等于height能够对齐,\
而移动端仍然是偏上,解决方案时是设置css line-height:normal;