将display:block与:before一起使用可能会导致ios错误

时间:2018-06-22 09:31:52

标签: javascript css

在iOS(8、9、10、11.1、11.2)中,当我单击文本区域时,它不会触发click事件。但是单击其他区域就可以了。
我使用opacity替换display或使用pointer-events: none可以解决此问题。
但是我不明白为什么“阻止”没有效果。

var btn = document.querySelector('.btn')
btn.onclick = function() {
  alert(111)
}
.btn {
  width: 100px;
  height: 40px;
  line-height: 40px;
  background: #e02e24;
  color: #fff;
  text-align: center;
  position: relative;
}

.btn::before {
  content: '';
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #000;
  opacity: .3;
}

.btn:active::before {
  display: block;
}
<div class="btn">Click Test</div>

0 个答案:

没有答案