0

For my latest project I have 3 stylesheets, one global, one for screen sizes less that 960 and one for mobile. Everything is working almost as it should however I am having a problem when trying the site on mobile. What should be happening is when you visit the site on a mobile device a little bit of jQuery will check if you are on mobile/tablet and if so enable the mobile stylesheet and disable the global stylesheet, but when I view this on my android device the mobile stylesheet isn't being enabled and I'm not sure why.

Here is a sample of what I have in the html for the stylesheets:

<link rel="stylesheet" href="css/global.css" media="all" id="global">
<link rel="stylesheet" href="css/mob_global.css" media="all" id="mob_global">
<link rel="stylesheet" href="css/layout.css" media="all and (min-width: 33.236em)">

And here is the accompanying jQuery:

$('#mob_global').attr('disabled', 'disabled');
var isMobile=false;(function(a,b){if(/android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i.test(a.substr(0,4)))isMobile=true})(navigator.userAgent||navigator.vendor||window.opera,'http://detectmobilebrowser.com/mobile');

// If we are on a mobile browser then disable standard style and re-enable mobile style
if (isMobile==true) {
    $('#global').attr('disabled', 'disabled').next().removeAttr('disabled');
}

And you can visit the site as is to test for yourself on: http://beta.residencyradio.com

And before anyone points it out, I know browser sniffing isn't the best thing to do, however my main site uses parallax scrolling and it functions horribly on mobile, so sniffing is the better option.

If anyone has any idea why this would be doing this it would be a big help!

Thanks in advance!

Michael
  • 807
  • 4
  • 14
  • 25

2 Answers2

2
<link rel="stylesheet" href="../css/global.css" media="all" id="global">
<link rel="stylesheet" href="..css/mob_global.css" media="all" id="mob_global">
<link rel="stylesheet" href="../css/layout.css" media="all and (min-width: 33.236em)">

use like this......... check href after..........

  • that worked a treat, out of interest, why does that make such a difference? ps. on line 2 it should be `../css/mob_global.css` on line 2. thanks for the help amigo! – Michael May 18 '12 at 11:58
  • with more testing this works online but not when locally tested. – Michael May 18 '12 at 13:03
0

why don't work with @media screen?

Example @media screen and (max-width: 1024px){ ... ... }

your site: resizing browser works ios-phone doesn't.

avarx
  • 509
  • 5
  • 21
  • screen size isn't something I can work with on this site. mobile/tablet now have resolutions that are even bigger than some desktops. What I am doing with this site is also disabling the parallax if a mobile device is detected. Thanks for the input any dude. – Michael May 18 '12 at 12:02