1. 去掉input 在iOS中的默认圆角和内阴影
iOS下 input会有自带的圆角和内阴影,去掉方法如下:
input{ -webkit-appearance: none; border-radius: 0; }
2. 焦点在 input 时,placeholder 没有隐藏
input:focus::-webkit-input-placeholder{ opacity: 0; }
3. input 输入框调出数字键盘
单独使用type="number"时,iOS调起的并不是九宫格样式的数字键盘,如果需要调起九宫格的数字键盘需要加上 pattern="[0-9]*" 属性
<!-- 数字键盘 带有符号,非九宫格样式 --> <input type="number"/> <!-- 九宫格数字键盘 --> <input type="number" pattern="[0-9]*"/> <!-- 电话号码键盘 --> <input type="tel"/>
4. 搜索时,键盘的回车按钮文字设定为“搜索”
解决: input 使用 type="search",放在 form 表单内。两者结合就能使输入法中的回车按钮文字变为“搜索”
<form action=""> <input type="search" /> </form>
5. 改变input placeholder颜色
::-webkit-input-placeholder { /* WebKit browsers */ color: #999; } :-moz-placeholder { /* Mozilla Firefox 4 to 18 */ color: #999; opacity: 1; } ::-moz-placeholder { /* Mozilla Firefox 19+ */ color: #999; opacity: 1; } :-ms-input-placeholder { /* Internet Explorer 10+ */ color: #999; } input::-webkit-input-placeholder, textarea::-webkit-input-placeholder { /* WebKit*/ color: #666; } input:-moz-placeholder, textarea:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ color: #666; } input::-moz-placeholder, textarea::-moz-placeholder { /* Mozilla Firefox 19+ */ color: #666; } input:-ms-input-placeholder, textarea:-ms-input-placeholder { /* IE 10+ */ color: #666; }
6. iOS下autofocus focus()失效的问题
iOS下不能自动获取焦点,必须是在监听到用户发出的事件的函数中执行focus才有用,比如:
// openNotifyReplay 是click触发的事件 openNotifyReplay = (e) => { this.setState({ notifyReplayVisible: true }, ()=>{ document.getElementById("replayPopupText").focus() }) }