reactjs - 为什么这些按钮在点击手机后没有取消选择但在桌面上正常工作?
问题描述
为什么这个应用底部的四个按钮点击手机后没有取消选择?它们在桌面上正常工作。我一直在拔头发,试图弄清楚这笔交易是什么。
一个有趣的观点。Uber 按钮实际上是一个链接,而其余的是 s。
这是部署的应用程序(训练营的最终项目): https ://sipspot.herokuapp.com/
这是 github 存储库: https ://github.com/charlesmbrady/Project3
如果您有任何想法,请告诉我。提前致谢!
以下是相关代码及其下方的相关 CSS:
<div className="bottombar">
{ this.state.theCheckinLatitude === 0 ? (
<button className="cntrl-btn" data-test="controls-checkin" onClick={ this.checkIn }>CheckIn</button>
) : (
<button className="cntrl-btn" data-test="controls-checkin" onClick={ this.checkOut }>ChkOut</button>
) }
<button className="cntrl-btn" data-test="controls-drink" onClick={ this.drinkTracker }>+Drink</button>
<a id="uber-button" className="cntrl-btn" data-test="controls-uber" href="https://m.uber.com/ul/?action=setPickup&pickup=my_location" target="_blank" rel="noopener noreferrer">Uber</a>
<button id="friends-button" className="cntrl-btn" data-test="controls-friends" onClick={ this.contactFriends }>Friends</button>
</div>
相关元素的 CSS。这些display:
项目是我能想象的唯一会对这个问题产生任何影响的部分。
.topbar>a, .topbar>button, .bottombar>a, .bottombar>button {
background-color: #121212;
color: white;
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
display: inline-block;
display: -moz-inline-box;
width: 25%;
padding: 10px;
}
解决方案
这个解决方案非常简单,而且效果很好。将以下媒体查询放入您的 CSS 以在支持悬停的设备(通常是笔记本电脑/台式机)上显示悬停效果。像手机这样的“触摸”设备不会看到这个 CSS,也不会被绊倒。触摸设备不能很好地悬停,这最终导致了“按钮粘连”的出现。
@media (hover: hover) {
/* code for devices that *support* hover (not mobiles) */
}
推荐阅读
- ios - URLSessionConfiguration 的 httpMaximumConnectionsPerHost 在网络故障的情况下不起作用
- html - 当来自 api 的响应不完全有角度时,如何跳过 ngFor?
- java - ApiResponses 混淆 Swagger-UI 输出找不到“类型”
- javascript - jQuery 用于根据下拉列表的更改值在 asp 中继器中设置背景颜色
- python - 我可以使用 ktrain 库从检查点恢复训练吗?
- python - 使用 to_sql 将 Pandas 数据帧中的数据批量插入 Sybase 数据库表失败
- java - 在 Java 中显示 3D 数组中的值
- filter - 将过滤器和消费者放在同一范围内(MassTransit)
- c - `siglongjmp` 到返回的函数
- c - 将节点插入 BST (C)