I am using Modernizr which sets up a touch or no-touch class on the <html> tag. Now I am using SASS and in a nested clause I had
li:hover {
// ...
}
I would like to apply this definition only if we have no-touch on the html tag.
.no-touch li:hover {
// ...
}
Doesn't work, since it's on the root. Is there a SASS shorthand or way to get what I want without creating a completely new CSS rule outside of all the definitions.
<html class="no-touch">
<body>
<div>
<!-- a lot of HTML -->
<ul>
<li> ... </li>
</ul>
<!-- /a lot of HTML -->
</div>
</body>
</html>
If I would use the & operator like this:
&.no-touch {
li:hover {
}
It would append the no-touch rule only to the surrounding ul element, resulting the following generated CSS:
ul.no-touch li:hover {
}
Which doesn't cover the case, since no-touch is defined on <html> and not <ul>
Also taken from the SASS documentation:
& will be replaced with the parent selector as it appears in the CSS
The parent selector does not reference to the <html> tag