textarea在苹果和安卓之前的兼容样式调整

发现问题:输入一些文字后对比,textarea组件在苹果IOS和安卓手机中输入内容后的样式

发现不同:textarea组件在安卓和苹果手机中输入内容后的局部特写

虽然在安卓手机上padding的值可以正常设置,但为了跟苹果手机一致,可以设置最小值为10rpx。那这样就有了新的问题,由于ios端本身最小值就是10rpx,那此时若不做处理就成了20rpx。所以,我们要判断用户的设备。大致思路就是:如果用户的是ios设备,就设置padding为0,这样就跟安卓端统一了。

解决方法:

第一步:统一padding

创建 textarea-padding-bug-on-ios的组件

// 组件的核心js代码
/* 获取系统信息 */
handleGetSystemInfo() {
wx.getSystemInfo({ /* 获取系统信息 官方文档:https://developers.weixin.qq.com/miniprogram/dev/api/base/system/system-info/wx.getSystemInfo.html */
success: (res) => {
this.setData({
platform: res.platform /* 客户端平台 */
})
console.log('获取系统信息 ', res)
}
})
}

上面的handleGetSystemInfo方法写在methods中,然后在ready中调用this.handleGetSystemInfo()方法即可。另外,wxml模板页也需要修改下,在textareaclass上做下判断即可。相关代码如下:

<textarea class="textarea {{platform === 'ios' ? 'textarea__ios_bug' : '' }}"></textarea>

最后,在wxss中添加一个textarea__ios_bug类名

// 组件的核心wxss源码
/* 修复ios的padding bug start */
.textarea__ios_bug {
padding: 0; /* 此处的值= 安卓端的值 - 10,单位:rpx。示例:安卓上是16rpx,此处就是6rpx */
}
/* 修复ios的padding bug end */

现在左侧间距苹果和安卓就一样了,如下图所示

 

第二步:祭出margin 大法

设置一个足够高的padding-bottom再设置一个负的相等的margin-bottom,这样正负相互抵消,就实现了自适应高度了。

 // 组件的核心WXML源码
<view class="form__label_content textarea-wrap {{platform === 'ios' ? 'textarea__ios_bug' : ''}}">
  <textarea class="textarea" placeholder="请输入详细地址"></textarea>
</view>
// 组件的核心wxss源码
.textarea-wrap .textarea {
background: transparent;
width: 100%;
height: 120rpx;
margin: 0;
font-size: 28rpx;
padding: 10rpx; /* ios端最小值 20rpx 10rpx */
line-height: 34rpx; /* ios端最小行高*/
}
/* 修复ios上的bug start */
.textarea__ios_bug .textarea {
padding: 0;
margin-top: -10rpx; /* 负10抵消 */
}
/* 修复ios上的bug end */

最后,来看下在上述代码上略加优化后的效果吧。如图:使用margin的负边距来抵消padding

总结:

ios端的padding最小值为:20rpx 10rpx,最小line-height为:34rpx

 

posted @   蓦然JL  阅读(513)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
  1. 1 唯一 G.E.M.邓紫棋
  2. 2 他只是经过 白敬亭 魏大勋
  3. 3 Uptown Funk Mark Ronson / Bruno Mars
  4. 4 在你的身边 盛哲
  5. 5 Edge of My Life Manafest
  6. 6 凄美地 郭顶
  7. 7 Wonderful Tonight Boyce Avenue
  8. 8 心如止水 Ice Paper
  9. 9 Sugar Maroon 5
  10. 10 静谧时光 JIAxNING
  11. 11 Right Now (Na Na Na) Aamir
  12. 12 Dangerously Charlie Puth
  13. 13 Someone You Loved Madilyn Paige
  14. 14 Shape of My Heart Boyce Avenue
  15. 15 We Can't Stop Boyce Avenue / Bea Miller
  16. 16 Perfect Boyce Avenue
  17. 17 Love Me Like You Do Boyce Avenue
  18. 18 Thank You Boyce Avenue
  19. 19 Don’t Wanna Know Boyce Avenue / Sarah Hyland
他只是经过 - 白敬亭 魏大勋
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

Not available

访问主页
关注我
关注微博
私信我
返回顶部
点击右上角即可分享
微信分享提示

目录导航