企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
* [ios] input框的placeholder在真机中并没有垂直居中,而是靠上一点(chrome模拟器没有),但是输入内容后就是垂直居中了。解决方法是为input设置height=line-height <br/> * [ios] input框在真机中默认有2px的border边框(chrome模拟器没有) <br/> * [ios] input框 type=number无效,依旧调起的是正常键盘,即使设置了pattern为0-9也不行。若想实现数字键盘,需要将type=tel,如果只允许输入数字,还需要在tel的基础上监听input事件,将非数字内容替换掉。 <br/> * fixed默认是相对于body定位的,比如fiexd,topleft0,元素会出现在屏幕左上角。 但是,translate会影响fiexd,比如:一个father里面的child是fixed,topleft0,然后我给father设置translateY(-50%),(假设屏幕高1000,father高400,father垂直居中于屏幕。),最后的结果是 child出现在离屏幕上方300的位置,也就是说,原本左上角的child随着father一起移动了translateY(-50%)。 所以说,使用translate时,要保证其内部的所有元素没有用到absolute、fixed布局,否则会影响它们。 <br/> * [ios] 滚动条弹动bug:     固定在顶部     中间内容带滚动条     固定在底部 如果content设置了固定高度,比如100%-top-bottom,那么在ios上滚动时有可能bottom和content会粘在一起 解决方案一:中间内容不设置固定高度,或者只设置min-height,内容自适应即可 解决方案二:中间内容设置为flex:1(尚未验证) ``` /\*修正\*/ 固定在顶部 中间内容带滚动条 固定在底部 #header{   width: 100%;   height: 50px;   background-color: red;   position: fixed;   top: 0; } #footer{   width: 100%;   height: 50px;   background-color: red;   position: fixed;   bottom: 0; } #content {   margin: 50px 0; } body {   -webkit-overflow-scrolling:touch } !!content不设置高度,内容自己撑开 ``` <br/> * ie下a.style=str无效,需要改为a.setAttribute("style", str) <br/> * 虚拟dom和dom的区别: https://www.zhihu.com/question/31809713?sort=created <br/> * 弹出层出现后阻止外层滚动: ``` 外层:{ position:fixed; top: 0px; right:0px; bottom:0px; z-index: 1002; left: 0px; } body:{overflow: 'hidden'} left:0;top:0;right:0;bottom:0;posioton:fixed; 或者 left:0;top:0;width:100%;height:100%;position:fixed ``` ``` 1.弹框出现时给滚动条元素设置overflow:hidden,关闭后再设置回visible(默认值) 2.出现时将长内容元素自身设置fixed,关闭后再恢复成static ``` <br/> * 相机: 在ios上直接打开相机,在安卓上可以选择图片或打开相机 在ios上可以选择图片或打开相机,在安卓上没有相机选项 需要做平台监测 http://www.jb51.net/article/116694.htm https://segmentfault.com/q/1010000005768036 https://www.cnblogs.com/xianxianxxx/p/7851148.html 在红米上,直接打开相册了 需要对红米单独监测:userAgent里有没有Redmi字段 <br/> * 图片压缩:https://www.cnblogs.com/007sx/p/7583202.html <br/> * 点击事件在ios和安卓上的兼容性bug:http://blog.csdn.net/u014168594/article/details/77586539 * [ios] safari 100vh后出现滚动条:设置一个全屏高的容器,使用100vh的话,在safari上会出现滚动条,原因是在safari上100vh不包含浏览器下方的「工具栏」,因此最终计算时,实际高度是100vh+工具栏高度,就会出现滚动条了。解决方案是使用100%,但需要一层一层设置100%直到本标签。 * [ios] safari fixed被遮盖问题: 父级元素100%屏幕高度,padding-top 1.5rem,子级元素fixed,通过top、left、right、bottom为0实现全屏高。在safari浏览器上,这个fixed元素上方的1.5rem高度区域会被遮盖掉,其他区域正常显示,如下图: ![](https://img.kancloud.cn/80/8a/808ae2f8bfcd1314bf6643ca7fd7b2bb_340x631.png) 然而审查一下元素,发现高度就是全屏高,说明没有被挤下去,而是因为什么原因,这个1.5rem区域被遮盖了,查来查去,只有父级的padding的原因了。 ![](https://img.kancloud.cn/0a/26/0a26f59df89fd7fc20e7d400879a66f0_342x616.png) 解决方案,给父级元素设置transform:translateY(0),因为父级的transform属性会是fixed元素定位失效,由窗口定位为父级自身,相当于absolute了。 ![](https://img.kancloud.cn/a5/3a/a53a7699d76797a40e1f43b6b1507abe_341x658.png) 这个方案也不是很好,弹出动画时还是被遮盖了,动画结束了才出来,有一种变高的动画错觉。