Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Meta viewport ONLY for phones?

Is there a way to set the general responsive meta viewport () only for phones? We have a website that without that meta tag, zoomed out, looks fine on 7" and larger tablets, portrait and landscape, but it was just a bit too inconvenient on smaller devices.

So to get it working how we wanted on phones, I had to use the <meta name="viewport"> tag, which then forced some media queries to fix things on the larger devices.

Is there a way to set that meta tag on phones, and just device default zoomed out view on larger devices?

Thanks! Rich

like image 319
user1050887 Avatar asked Aug 08 '13 19:08

user1050887


2 Answers

Do you mean this <meta name="viewport">?

<meta name="viewport" content="width=device-width, user-scalable=no" />    

If so, try the following script added in the <head> (taken and adapted from here):

if(navigator.userAgent.match(/Android/i)
  || navigator.userAgent.match(/webOS/i)
  || navigator.userAgent.match(/iPhone/i)
  || navigator.userAgent.match(/iPad/i)
  || navigator.userAgent.match(/iPod/i)
  || navigator.userAgent.match(/BlackBerry/i)
  || navigator.userAgent.match(/Windows Phone/i)) {
    document.write('<meta name="viewport" content="width=device-width, user-scalable=no" />');
}

This will detect if the user-agent indicates that the browser is mobile, and will write that meta viewport as required.

like image 63
Robbie JW Avatar answered Oct 10 '22 19:10

Robbie JW


Actually, this might be a better solution: Add a script after meta viewport tag that will change the value if the screen is bigger than specified.

<meta id="testViewport" name=viewport content="width=device-width, initial-scale=1">
<script>
if (screen.width > 590) {
    var mvp = document.getElementById('testViewport');
    mvp.setAttribute('content','width=980');
}
</script>

There can be variations of this script. For example you could set the actual screen width as viewport, instead of a fixed value.

like image 42
RedNaxel Avatar answered Oct 10 '22 21:10

RedNaxel