What is the perfect way to detect a tablet?

Rudolf Bos picture Rudolf Bos · Mar 22, 2013 · Viewed 15.5k times · Source

I am looking for the perfect way to detect tablets. With media queries you can set min- and max-widths for specific CSS. But there are tablets that have higher resolutions than soms desktop monitors. So that will give a conflict.

With Javascript (Modernizr, Detectivizr) tablets are recognized and sets this in the HTML with a class 'tablet' on the HTML tag. But... Not all users have Javascript enabled.

So what you want is (in my opinion) use CSS to detect tablets. Does anyone know the perfect solution for this?

Thanx in advance!

Answer

starbeamrainbowlabs picture starbeamrainbowlabs · Mar 22, 2013

You can obtain a reasonable degree of accuracy by using CSS media queries:

@media only screen 
and (max-device-height : 768px) 
and (max-device-width : 1024px)
{
    /* CSS Styles go here..... */
}

The above should detect when the device screen size is less than 1024x768 (a common screen size for desktops).

As you have stated above it is not perfect if you just use CSS because some tablets have a screen size larger than 1024x768.

The only way that I know of to increase the accuracy is to use javascript to sniff the userAgent string. See the question that GeenHenk linked to (What is the best way to detect a mobile device in jQuery?).