移动端h5开发问题汇总

这篇博客总结了移动端H5开发中遇到的一些问题,包括:div:active伪类在移动端无效,ios设备中input和textarea的默认样式处理,textarea边角圆角的去除,弹窗滚动冲突的解决,input type=date的placeholder显示问题,以及点击div出现选中框的处理。通过添加事件监听、修改样式和应用JavaScript等方法提供了相应的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. div:active伪类无效问题

         普通div在移动端:active伪类不会生效,应该是只有a,button此类才会生效,pc端正常

         解决办法:在body添加touchstart事件监听

  <script>
    document.body.addEventListener('touchstart', function () {})
  </script>

2、ios浏览器input、textarea去除默认样式

input, textarea {
  -webkit-appearance: none; 
}

3、ios浏览器textare的border-radius默认为圆角,自行设置去除

4、弹窗后,滑动弹窗,底部页面在滚动,可在弹窗上的mask元素上添加@touchmove.prevent,

 <div class="dialog" v-if="isShow">
    <div class="dialog-mask" @touchmove.prevent></div>
    <div class="dialog-body">
           
    </div>
</div>

5、input type=date,placeholder不显示问题。解决方案:css + js

// css: 设置伪类显示
input[type="date"]:before{
    content: attr(placeholder);
    width: 100%;
    text-align: center;
    color:#bebebe;
}

// js控制placeholder显示
<input
   type="date"
   placeholder="开始日期"
   v-model="startTime"
   class="search-date startTime ant-calendar-picker-input ant-input"
   @blur="onBlur"
   @focus="onFocus">

onBlur (e) {
   if (e.target.value === '') {
      e.target.setAttribute('placeholder', e.target.className.includes('startTime') ? '开始日期' : '结束日期')
   }
},
onFocus (e) {
   e.target.removeAttribute('placeholder')
},

6、手机端点击div 出现框框

div {
  -webkit-tap-highlight-color:rgba(0,0,0,0);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值