From a1126ef655d130b726c7d08359d589e93fc9531a Mon Sep 17 00:00:00 2001 From: Chris Rebert Date: Wed, 21 Jan 2015 12:41:11 -0800 Subject: [PATCH] Reorg @viewport now that we don't need to worry about non-responsive layouts --- docs/getting-started/support.md | 18 ++---------------- scss/_scaffolding.scss | 20 ++++++++++++++++++++ scss/_utilities-responsive.scss | 20 -------------------- 3 files changed, 22 insertions(+), 36 deletions(-) diff --git a/docs/getting-started/support.md b/docs/getting-started/support.md index 348b1893f6..63667fe85d 100644 --- a/docs/getting-started/support.md +++ b/docs/getting-started/support.md @@ -128,23 +128,9 @@ This tag is included in all of Bootstrap's documentation and examples to ensure See [this StackOverflow question](http://stackoverflow.com/questions/6771258/whats-the-difference-if-meta-http-equiv-x-ua-compatible-content-ie-edge) for more information. -### Internet Explorer 10 in Windows 8 and Windows Phone 8 +### Internet Explorer 10 in Windows Phone 8 -Internet Explorer 10 doesn't differentiate **device width** from **viewport width**, and thus doesn't properly apply the media queries in Bootstrap's CSS. Normally you'd just add a quick snippet of CSS to fix this: - -{% highlight scss %} -@-ms-viewport { width: device-width; } -{% endhighlight %} - -However, this doesn't work for devices running Windows Phone 8 versions older than [Update 3 (a.k.a. GDR3)](http://blogs.windows.com/windows_phone/b/wpdev/archive/2013/10/14/introducing-windows-phone-preview-for-developers.aspx), as it causes such devices to show a mostly desktop view instead of narrow "phone" view. To address this, you'll need to **include the following CSS and JavaScript to work around the bug**. - -{% highlight scss %} -@-webkit-viewport { width: device-width; } -@-moz-viewport { width: device-width; } -@-ms-viewport { width: device-width; } -@-o-viewport { width: device-width; } -@viewport { width: device-width; } -{% endhighlight %} +Internet Explorer 10 in Windows Phone 8 versions older than [Update 3 (a.k.a. GDR3)](http://blogs.windows.com/windows_phone/b/wpdev/archive/2013/10/14/introducing-windows-phone-preview-for-developers.aspx) doesn't differentiate **device width** from **viewport width** in `@-ms-viewport` at-rules, and thus doesn't properly apply the media queries in Bootstrap's CSS. To address this, you'll need to **include the following JavaScript to work around the bug**. {% highlight js %} if (navigator.userAgent.match(/IEMobile\/10\.0/)) { diff --git a/scss/_scaffolding.scss b/scss/_scaffolding.scss index a0d73be405..038ee020b7 100644 --- a/scss/_scaffolding.scss +++ b/scss/_scaffolding.scss @@ -20,6 +20,26 @@ html { } +// Make viewport responsive +// +// @viewport is supposed to eventually replace . It's manually prefixed for forward-compatibility. +// +// @viewport is also needed because IE 10+ doesn't honor in some cases. +// (See http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/) +// +// However, `device-width` is broken on IE 10 on Windows (Phone) 8, +// (see http://timkadlec.com/2013/01/windows-phone-8-and-device-width/ +// and https://github.com/twbs/bootstrap/issues/10497) +// and the fix for that involves a snippet of JavaScript to sniff the user agent and apply some conditional CSS. +// See http://getbootstrap.com/getting-started/#support-ie10-width for the relevant hack. + +@-moz-viewport { width: device-width; } +@-ms-viewport { width: device-width; } +@-o-viewport { width: device-width; } +@-webkit-viewport { width: device-width; } +@viewport { width: device-width; } + + // Body reset html { diff --git a/scss/_utilities-responsive.scss b/scss/_utilities-responsive.scss index 837cda7b9a..bb8c784dbd 100644 --- a/scss/_utilities-responsive.scss +++ b/scss/_utilities-responsive.scss @@ -16,26 +16,6 @@ } -// IE10 in Windows (Phone) 8 -// -// Support for responsive views via media queries is kind of borked in IE10, for -// Surface/desktop in split view and for Windows Phone 8. This particular fix -// must be accompanied by a snippet of JavaScript to sniff the user agent and -// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at -// our Getting Started page for more information on this bug. -// -// For more information, see the following: -// -// Issue: https://github.com/twbs/bootstrap/issues/10497 -// Docs: http://getbootstrap.com/getting-started/#support-ie10-width -// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/ -// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/ - -@-ms-viewport { - width: device-width; -} - - // Print utilities // // Media queries are placed on the inside to be mixin-friendly.