Skip to content

Adjusts CSS media queries in browsers that include the scrollbar width in the viewport width so they fire at the intended width

Notifications You must be signed in to change notification settings

enigmadigital/mqGenie

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mqGenie

Adjusts CSS media queries in browsers that include the scrollbar's width in the viewport width so they fire at the intended size

WebKit browsers are the only browsers that don't include the scrollbar in the viewport. While this is technically incorrect (http://www.w3.org/TR/css3-mediaqueries/#width), it makes sense as mobile devices don't have scrollbars.

If not already applied with CSS, mqGenie forces a vertical scrollbar on <html>. If the browser is not WebKit based, mqGenie increases all of the media queries by the width of the scrollbar so that they fire at the correct size - including em based ones.

It returns a JavaScript object called mqGenie, which contains the following properties:

  • adjusted (boolean)
  • fontSize (computed HTML font-size)
  • width (scrollbar width)

A second function, mqAdjust is made available, which allows you to re-calculate media queries that are written in JavaScript. Simply pass mqAdjust the media query string and it will return one that's adjusted appropriately.


Usage:

  1. Include mq.genie.min.js in the <head> of your document

  2. If you develop in Chrome or Safari, write your media queries as you always have. If you use another browser, subtract mqGenie.width from the browser's reported viewport width.

  3. If you have media queries triggering events in JavaScript, such as with enquire.js, use mqAdjust(string) as opposed to string

About

Adjusts CSS media queries in browsers that include the scrollbar width in the viewport width so they fire at the intended width

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published