Media query for devices supporting hover
not should prefix media type (screen, print, all, etc) and not media feature (hover, point, etc). Wrong: @media not (hover: none) Correct: @media not all and (hover: none) Yes, its unintuitive and weird. Source (see comments). So you do not need javascript to alternate result of media query.