Skip to content

Instantly share code, notes, and snippets.

@jsoverson
Created February 15, 2013 20:06
Show Gist options
  • Save jsoverson/4963116 to your computer and use it in GitHub Desktop.
Save jsoverson/4963116 to your computer and use it in GitHub Desktop.
Quick css hacks to target android/ios
.visible-android {
display:none;
}
.visible-ios {
display:none;
}
.on-device .visible-android, .on-device .visible-android {
display:inherit;
}
.device-ios .visible-android {
display:none !important;
}
.device-ios .hidden-ios {
display:none !important;
}
.device-android .hidden-android {
display:none !important;
}
.device-android .visible-ios {
display:none !important;
}
var classNames = [];
if (navigator.userAgent.match(/(iPad|iPhone|iPod)/i)) classNames.push('device-ios');
if (navigator.userAgent.match(/android/i)) classNames.push('device-android');
var html = document.getElementsByTagName('html')[0];
if (classNames.length) classNames.push('on-device');
if (html.classList) html.classList.add.apply(html.classList, classNames);
@contfedorov
Copy link

@ckizer
Try Framework7. Its Device utility class contains quite reliable methods and properties to detect OS, platform and device type. It covers most cases that are even possible to detect via WebView.

@ckizer
Copy link

ckizer commented May 2, 2021 via email

@EmmanuelVictor62
Copy link

These are not CSS hacks, but rather a JavaScript OS detection. People come here via Google expecting CSS hacks.

In 2024, and this exact thing still deceived me😶

@GitToTheHub
Copy link

GitToTheHub commented Feb 10, 2025

I have a short javascript code for resolving this. This will create the css classes show-on-android and show-on-ios. When using them, elements will be hidden if the platform does not match:

    const isAndroid = navigator.userAgent.match(/android/i);
    const isiOS = navigator.userAgent.match(/(iPad|iPhone|iPod)/i);

    let style = document.createElement('style');
    style.innerHTML = `.show-on-android { ${isAndroid ? "" : "display: none;"} }`;
    style.innerHTML += `.show-on-ios { ${isiOS ? "" : "display: none;"} }`;
    document.getElementsByTagName('head')[0].appendChild(style);

Note: This code uses modern JavaScript.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment