Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Responsive css styles on mobile devices ONLY

I'm trying to make my responsive CSS styles work only on tablets and smartphones. Basically I have a style for desktop, a style for mobile: portrait and a style for mobile: landscape. I don't want the mobile styles interfering with the desktop presentation at all. I have played around with countless media queries, but the result either the mobile styles are getting displayed on the desktop, or the mobile styles are displaying only on mobile devices but with only one set of rules (non-responsive). Is there a way I can keep the two completely separate?

My code I have right now goes like this:

/* regular desktop styles */  @media only screen  and (max-device-width: 600px)  { ... }  /* mobile only styles when the device is 0-600px in maximum width */  @media only screen  and (max-device-width: 1000px) { ... }  /* mobile only styles when the device is up to 1000px in maximum width */ 
like image 261
jaspn Avatar asked Feb 25 '13 06:02

jaspn


People also ask

Does CSS work on mobile?

Only the Cascading Style Sheets, or CSS, will be different. That is, browsers on desktop/laptop computers will render the page using one set of CSS instructions, while those on mobile phones another.


1 Answers

Why not use a media query range.

I'm currently working on a responsive layout for my employer and the ranges I'm using are as follows:

You have your main desktop styles in the body of the CSS file (1024px and above) and then for specific screen sizes I'm using:

@media all and (min-width:960px) and (max-width: 1024px) {   /* put your css styles in here */ }  @media all and (min-width:801px) and (max-width: 959px) {   /* put your css styles in here */ }  @media all and (min-width:769px) and (max-width: 800px) {   /* put your css styles in here */ }  @media all and (min-width:569px) and (max-width: 768px) {   /* put your css styles in here */ }  @media all and (min-width:481px) and (max-width: 568px) {   /* put your css styles in here */ }  @media all and (min-width:321px) and (max-width: 480px) {   /* put your css styles in here */ }  @media all and (min-width:0px) and (max-width: 320px) {   /* put your css styles in here */ } 

This will cover pretty much all devices being used - I would concentrate on getting the styling correct for the sizes at the end of the range (i.e. 320, 480, 568, 768, 800, 1024) as for all the others they will just be responsive to the size available.

Also, don't use px anywhere - use em's or %.

like image 106
Ran Avatar answered Sep 30 '22 13:09

Ran