Weuse[Autoprefixer](https://github.com/postcss/autoprefixer) to handle intended browser support via CSS prefixes, which uses [Browserslist](https://github.com/browserslist/browserslist) to manage these browser versions. Consult their documentation for how to integrate these tools into your projects.
ForFirefox,inadditiontothelatestnormalstablerelease,wealsosupportthelatest[ExtendedSupportRelease(ESR)](https://www.mozilla.org/en-US/firefox/organizations/#faq) version of Firefox.
InternetExplorer10+issupported;IE9anddownisnot.PleasebeawarethatsomeCSS3propertiesandHTML5elementsarenotfullysupportedinIE10,orrequireprefixedpropertiesforfullfunctionality.Visit[CanIuse...](https://caniuse.com/) for details on browser support of CSS3 and HTML5 features. **If you require IE8-9 support, use Bootstrap 3.**
##Modalsanddropdownsonmobile
###Overflowandscrolling
Supportfor`overflow: hidden;` on the `<body>` element is quite limited in iOS and Android. To that end, when you scroll past the top or bottom of a modal in either of those devices' browsers, the `<body>`contentwillbegintoscroll.See[Chromebug#175502](https://bugs.chromium.org/p/chromium/issues/detail?id=175502) (fixed in Chrome v40) and [WebKit bug #153852](https://bugs.webkit.org/show_bug.cgi?id=153852).
###iOStextfieldsandscrolling
AsofiOS9.2,whileamodalisopen,iftheinitialtouchofascrollgestureiswithintheboundaryofatextual`<input>` or a `<textarea>`, the `<body>`contentunderneaththemodalwillbescrolledinsteadofthemodalitself.See[WebKitbug#153856](https://bugs.webkit.org/show_bug.cgi?id=153856).
Throughoutourv4alphaandbetareleases,weincludedincompleteandcommentedoutcodeforoptingintoamediaqueryshimthatwoulddisablehoverstylesintouchdevicebrowsersthatemulatehovering.Thisworkwasneverfullycompletedorenabled,buttoavoidcompletebreakage,we'veoptedtodeprecate[thisshim](https://github.com/twbs/mq4-hover-shim) and keep the mixins as shortcuts for the pseudo-classes.
##Printing
Eveninsomemodernbrowsers,printingcanbequirky.
AsofSafariv8.0,useofthefixed-width`.container`classcancauseSafaritouseanunusuallysmallfontsizewhenprinting.See[issue#14868]({{site.repo}}/issues/14868)and[WebKitbug#138192](https://bugs.webkit.org/show_bug.cgi?id=138192) for more details. One potential workaround is the following CSS:
On`<select>` elements, the Android stock browser will not display the side controls if there is a `border-radius` and/or `border` applied. (See [this StackOverflow question](https://stackoverflow.com/questions/14744437/html-select-box-not-showing-drop-down-arrow-on-android-version-4-0-when-set-with) for details.) Use the snippet of code below to remove the offending CSS and render the `<select>`asanunstyledelementontheAndroidstockbrowser.TheuseragentsniffingavoidsinterferencewithChrome,Safari,andMozillabrowsers.
Inordertoprovidethebestpossibleexperiencetooldandbuggybrowsers,Bootstrapuses[CSSbrowserhacks](http://browserhacks.com/) in several places to target special CSS to certain browser versions in order to work around bugs in the browsers themselves. These hacks understandably cause CSS validators to complain that they are invalid. In a couple places, we also use bleeding-edge CSS features that aren't yet fully standardized, but these are used purely for progressive enhancement.