如何使点击突出显示仅显示在父元素上,而不显示在子元素上?
How can I make the tap highlight show only on a parent element, not on children?
假设我在 iOS 上呈现此标记:
<a href="#" class="book">
<span class="title">Robinson Crusoe</span>
<span class="author">Daniel Defoe</span>
</a>
当用户在该元素内部点击时,我希望小灰色点击高亮显示 仅在父元素 link 上,而不是在单个元素 <span>
他们点击的标签。
所以不是这个:
+-----------+
|###########|
| |
+-----------+
我希望用户看到这个:
+-----------+
|###########|
|###########|
+-----------+
我试验过这样的代码:
.book {
-webkit-tap-highlight-color: initial;
}
.book * {
-webkit-tap-highlight-color: none;
}
该代码会抑制子 span 的高亮,但它也会抑制父 span 的高亮,所以最后什么都没有高亮,这不是我想要的。
我试过谷歌搜索,但似乎找不到任何东西,除了 this,这似乎与我的问题无关。
有没有人尝试过这样做?
终于想出了一个方法来做到这一点(在试验伪 类 之后):
.book {
-webkit-tap-highlight-color: transparent;
}
.book:active {
background-color: #efefef /* tap color */;
}
之所以有效,是因为 iOS Safari 应用了 :active
样式 onTouchStart
。
假设我在 iOS 上呈现此标记:
<a href="#" class="book">
<span class="title">Robinson Crusoe</span>
<span class="author">Daniel Defoe</span>
</a>
当用户在该元素内部点击时,我希望小灰色点击高亮显示 仅在父元素 link 上,而不是在单个元素 <span>
他们点击的标签。
所以不是这个:
+-----------+
|###########|
| |
+-----------+
我希望用户看到这个:
+-----------+
|###########|
|###########|
+-----------+
我试验过这样的代码:
.book {
-webkit-tap-highlight-color: initial;
}
.book * {
-webkit-tap-highlight-color: none;
}
该代码会抑制子 span 的高亮,但它也会抑制父 span 的高亮,所以最后什么都没有高亮,这不是我想要的。
我试过谷歌搜索,但似乎找不到任何东西,除了 this,这似乎与我的问题无关。
有没有人尝试过这样做?
终于想出了一个方法来做到这一点(在试验伪 类 之后):
.book {
-webkit-tap-highlight-color: transparent;
}
.book:active {
background-color: #efefef /* tap color */;
}
之所以有效,是因为 iOS Safari 应用了 :active
样式 onTouchStart
。