[适配]页面有放缩的情况下,UC浏览器中input框的width比实际设置小的问题
此前开发H5页面时遇到UC浏览器input框长度被截短的问题,作一记录。
排查问题的过程:
1、width设置小生效,设置大超过一定值的时候被截短到某个固定宽度。
2、原始页面宽度为1024px,使用js根据屏幕宽度进行了缩小。
3、textarea和input会有同样的问题,但给div设置一个很大的width并不会被截短。
4、首次进入页面input不会被截短,刷新页面之后会一直出现这种情况。
5、暂时发现只有UC浏览器有这个问题。
初步推测UC浏览器给input、textarea元素设置了max-width为屏幕宽度。
由于1024px大于屏幕宽度,input在js放缩之前就被截短了,再被js进行了二次放缩。
解决方式:
1、不使用input使用div。使用contenteditable="true"可以在div中输入内容。
2、页面width修改宽度375px或者750px,再对整个页面进行放大。
3、不使用缩放,或不考虑uc兼容性。