Make iOS Show CSS :hover Styles Without Any JS
Occasionally I’ll build an interaction that happens entirely in CSS via hover or focus on a non-standard element. Unfortunately, iOS doesn’t apply hover states when you tap on, say, a div
. The solution is to get iOS to treat that element like a link by listening for clicks.
One way to do this without changing any other behavior on the page is to add an onclick to the desired element:
<div onclick="void(0)" class="fancy-hover">…</div>
Tapping will now trigger the :hover
CSS styles for this element. Tapping away, doesn’t have the desired effect by default. In those cases, you can also add this:
<body onclick="void(0)">…</body>
This assumes you’re not using the onclick
attribute because it’s 2017 and there are better ways of registering those click handlers. ;)