近一个月来忙于把h5页面嵌进APP 现在记录下踩过的坑和应该注意的一些细节
1.细节问题
input type为tel,number,email类型用起来,弹出的软键盘不一样哦,max-length别忘了,比如手机号,身份证号之类的input,细节很重要
值 | 描述 |
---|---|
button | 定义可点击的按钮(大多与 JavaScript 使用来启动脚本) |
checkbox | 定义复选框。 |
color | 定义拾色器。 |
date | 定义日期字段(带有 calendar 控件) |
datetime | 定义日期字段(带有 calendar 和 time 控件) |
datetime-local | 定义日期字段(带有 calendar 和 time 控件) |
month | 定义日期字段的月(带有 calendar 控件) |
week | 定义日期字段的周(带有 calendar 控件) |
time | 定义日期字段的时、分、秒(带有 time 控件) |
定义用于 e-mail 地址的文本字段 | |
file | 定义输入字段和 "浏览..." 按钮,供文件上传 |
hidden | 定义隐藏输入字段 |
image | 定义图像作为提交按钮 |
number | 定义带有 spinner 控件的数字字段 |
password | 定义密码字段。字段中的字符会被遮蔽。 |
radio | 定义单选按钮。 |
range | 定义带有 slider 控件的数字字段。 |
reset | 定义重置按钮。重置按钮会将所有表单字段重置为初始值。 |
search | 定义用于搜索的文本字段。 |
submit | 定义提交按钮。提交按钮向服务器发送数据。 |
tel | 定义用于电话号码的文本字段。 |
text | 默认。定义单行输入字段,用户可在其中输入文本。默认是 20 个字符。 |
url | 定义用于 URL 的文本字段。 |
坑:ios上input type为radio的 一点击出现一个大黑圆点有没有啊 吓死人了
解决办法:
.radio::after{
content:'';
-webkit-appearance: none;
}
.radio:checked::after{
outline: none;
-webkit-appearance: none;
-webkit-text-fill-color:#dc3729;
}
2.软键盘弹起时 把页面fixed定位在底部的内容挤到上面了 很影响美观还会遮挡部分区域内容啊 我也查阅了不少资料 有说用流式布局的 还有说别的的 总之都不太符合我们的项目要求 其实我一开始很想的方案是 软键盘弹出的时候 把固定的内容隐藏 当用户滑动页面时 js控制input失去焦点 软键盘收起 固定的内容显示 或当用户主动把软键盘收起 即页面resize的时候 把固定的内容显示。做的过程中发现当软键盘弹出时页面高度会发生变化 ,有可能会出现滚动条,这样页面就自然发生了滚动,会和前面resize的逻辑冲突,所以我就又想了个办法,在软键盘弹出的时候记录一个flag为true,手动滑动页面置成false,当页面滚动时,看flag的状态,即可区分是因为软键盘弹出导致的页面滚动还是手动滑动页面,这样就OK啦