mirror of
https://github.com/twbs/bootstrap.git
synced 2025-02-20 17:54:23 +01:00
Remove IE9 browser hacks. (#21393)
This commit is contained in:
parent
b01f5a1a38
commit
855a67b1d6
@ -163,7 +163,6 @@ module.exports = function (grunt) {
|
|||||||
|
|
||||||
cssmin: {
|
cssmin: {
|
||||||
options: {
|
options: {
|
||||||
compatibility: 'ie10,-properties.zeroUnits',
|
|
||||||
sourceMap: true,
|
sourceMap: true,
|
||||||
// sourceMapInlineSources: true,
|
// sourceMapInlineSources: true,
|
||||||
advanced: false
|
advanced: false
|
||||||
|
@ -105,10 +105,6 @@ Buttons will appear pressed (with a darker background, darker border, and inset
|
|||||||
|
|
||||||
Make buttons look inactive by adding the `disabled` boolean attribute to any `<button>` element.
|
Make buttons look inactive by adding the `disabled` boolean attribute to any `<button>` element.
|
||||||
|
|
||||||
{% callout info %}
|
|
||||||
**Heads up!** IE9 and below render disabled buttons with gray, shadowed text that we can't override.
|
|
||||||
{% endcallout %}
|
|
||||||
|
|
||||||
{% example html %}
|
{% example html %}
|
||||||
<button type="button" class="btn btn-lg btn-primary" disabled>Primary button</button>
|
<button type="button" class="btn btn-lg btn-primary" disabled>Primary button</button>
|
||||||
<button type="button" class="btn btn-secondary btn-lg" disabled>Button</button>
|
<button type="button" class="btn btn-secondary btn-lg" disabled>Button</button>
|
||||||
|
@ -933,8 +933,6 @@ Custom `<select>` menus need only a custom class, `.custom-select` to trigger th
|
|||||||
</select>
|
</select>
|
||||||
{% endexample %}
|
{% endexample %}
|
||||||
|
|
||||||
Custom selects degrade nicely in IE9, receiving only a handful of overrides to remove the custom `background-image`. **Multiple selects (e.g., `<select multiple>`) are not currently supported.**
|
|
||||||
|
|
||||||
### File browser
|
### File browser
|
||||||
|
|
||||||
The file input is the most gnarly of the bunch and require additional JavaScript if you'd like to hook them up with functional *Choose file...* and selected file name text.
|
The file input is the most gnarly of the bunch and require additional JavaScript if you'd like to hook them up with functional *Choose file...* and selected file name text.
|
||||||
|
@ -311,7 +311,7 @@ The `<abbr>` element receives basic styling to make it stand out amongst paragra
|
|||||||
|
|
||||||
## HTML5 `[hidden]` attribute
|
## HTML5 `[hidden]` attribute
|
||||||
|
|
||||||
HTML5 adds [a new global attribute named `[hidden]`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/hidden), which is styled as `display: none` by default. Borrowing an idea from [PureCSS](http://purecss.io), we improve upon this default by making `[hidden] { display: none !important; }` to help prevent its `display` from getting accidentally overridden. While `[hidden]` isn't natively supported by IE9-10, the explicit declaration in our CSS gets around that problem.
|
HTML5 adds [a new global attribute named `[hidden]`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/hidden), which is styled as `display: none` by default. Borrowing an idea from [PureCSS](http://purecss.io), we improve upon this default by making `[hidden] { display: none !important; }` to help prevent its `display` from getting accidentally overridden. While `[hidden]` isn't natively supported by IE10, the explicit declaration in our CSS gets around that problem.
|
||||||
|
|
||||||
{% highlight html %}
|
{% highlight html %}
|
||||||
<input type="text" hidden>
|
<input type="text" hidden>
|
||||||
|
@ -131,8 +131,6 @@
|
|||||||
// Replaces the browser default select with a custom one, mostly pulled from
|
// Replaces the browser default select with a custom one, mostly pulled from
|
||||||
// http://primercss.io.
|
// http://primercss.io.
|
||||||
//
|
//
|
||||||
// Includes hacks for IE9 (noted by ` \9`), which may apply to other versions of
|
|
||||||
// IE, but not with any adverse affects.
|
|
||||||
|
|
||||||
.custom-select {
|
.custom-select {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
@ -140,11 +138,9 @@
|
|||||||
$select-border-width: ($border-width * 2);
|
$select-border-width: ($border-width * 2);
|
||||||
height: calc(#{$input-height} - #{$select-border-width});
|
height: calc(#{$input-height} - #{$select-border-width});
|
||||||
padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;
|
padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;
|
||||||
padding-right: $custom-select-padding-x \9;
|
|
||||||
color: $custom-select-color;
|
color: $custom-select-color;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
background: $custom-select-bg $custom-select-indicator no-repeat right $custom-select-padding-x center;
|
background: $custom-select-bg $custom-select-indicator no-repeat right $custom-select-padding-x center;
|
||||||
background-image: none \9;
|
|
||||||
background-size: $custom-select-bg-size;
|
background-size: $custom-select-bg-size;
|
||||||
border: $custom-select-border-width solid $custom-select-border-color;
|
border: $custom-select-border-width solid $custom-select-border-color;
|
||||||
@include border-radius($custom-select-border-radius);
|
@include border-radius($custom-select-border-radius);
|
||||||
|
@ -105,7 +105,6 @@
|
|||||||
cursor: $cursor-disabled;
|
cursor: $cursor-disabled;
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
background-image: none; // Remove CSS gradient
|
background-image: none; // Remove CSS gradient
|
||||||
@include reset-filter();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,7 +23,6 @@
|
|||||||
@import "mixins/hover";
|
@import "mixins/hover";
|
||||||
@import "mixins/image";
|
@import "mixins/image";
|
||||||
@import "mixins/badge";
|
@import "mixins/badge";
|
||||||
@import "mixins/reset-filter";
|
|
||||||
@import "mixins/resize";
|
@import "mixins/resize";
|
||||||
@import "mixins/screen-reader";
|
@import "mixins/screen-reader";
|
||||||
@import "mixins/size";
|
@import "mixins/size";
|
||||||
|
@ -54,21 +54,6 @@ base::-moz-progress-bar, // Absurd-but-syntactically-valid selector to make thes
|
|||||||
@include box-shadow($progress-box-shadow);
|
@include box-shadow($progress-box-shadow);
|
||||||
}
|
}
|
||||||
|
|
||||||
// IE9 hacks to accompany custom markup. We don't need to scope this via media queries, but I feel better doing it anyway.
|
|
||||||
@media screen and (min-width:0\0) {
|
|
||||||
.progress {
|
|
||||||
background-color: $progress-bg;
|
|
||||||
@include border-radius($progress-border-radius);
|
|
||||||
@include box-shadow($progress-box-shadow);
|
|
||||||
}
|
|
||||||
.progress-bar {
|
|
||||||
display: inline-block;
|
|
||||||
height: $spacer-y;
|
|
||||||
text-indent: -999rem; // Simulate hiding of value as in native `<progress>`
|
|
||||||
background-color: $progress-bar-color;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Striped
|
// Striped
|
||||||
@ -86,13 +71,6 @@ base::-moz-progress-bar, // Absurd-but-syntactically-valid selector to make thes
|
|||||||
@include gradient-striped();
|
@include gradient-striped();
|
||||||
background-size: $spacer-y $spacer-y;
|
background-size: $spacer-y $spacer-y;
|
||||||
}
|
}
|
||||||
// IE9
|
|
||||||
@media screen and (min-width:0\0) {
|
|
||||||
.progress-bar-striped {
|
|
||||||
@include gradient-striped();
|
|
||||||
background-size: $spacer-y $spacer-y;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -105,12 +83,6 @@ base::-moz-progress-bar, // Absurd-but-syntactically-valid selector to make thes
|
|||||||
.progress-animated[value]::-moz-progress-bar {
|
.progress-animated[value]::-moz-progress-bar {
|
||||||
animation: progress-bar-stripes 2s linear infinite;
|
animation: progress-bar-stripes 2s linear infinite;
|
||||||
}
|
}
|
||||||
// IE9
|
|
||||||
@media screen and (min-width:0\0) {
|
|
||||||
.progress-animated .progress-bar-striped {
|
|
||||||
animation: progress-bar-stripes 2s linear infinite;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -143,7 +143,6 @@
|
|||||||
.table-responsive {
|
.table-responsive {
|
||||||
display: block;
|
display: block;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
min-height: 0%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)
|
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
-ms-overflow-style: -ms-autohiding-scrollbar; // See https://github.com/twbs/bootstrap/pull/10057
|
-ms-overflow-style: -ms-autohiding-scrollbar; // See https://github.com/twbs/bootstrap/pull/10057
|
||||||
|
|
||||||
|
@ -3,11 +3,9 @@
|
|||||||
// Horizontal gradient, from left to right
|
// Horizontal gradient, from left to right
|
||||||
//
|
//
|
||||||
// Creates two color stops, start and end, by specifying a color and position for each color stop.
|
// Creates two color stops, start and end, by specifying a color and position for each color stop.
|
||||||
// Color stops are not available in IE9.
|
|
||||||
@mixin gradient-x($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
|
@mixin gradient-x($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
|
||||||
background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);
|
background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);
|
||||||
background-repeat: repeat-x;
|
background-repeat: repeat-x;
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Vertical gradient, from top to bottom
|
// Vertical gradient, from top to bottom
|
||||||
@ -17,7 +15,6 @@
|
|||||||
@mixin gradient-y($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
|
@mixin gradient-y($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
|
||||||
background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);
|
background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);
|
||||||
background-repeat: repeat-x;
|
background-repeat: repeat-x;
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin gradient-directional($start-color: #555, $end-color: #333, $deg: 45deg) {
|
@mixin gradient-directional($start-color: #555, $end-color: #333, $deg: 45deg) {
|
||||||
@ -27,12 +24,10 @@
|
|||||||
@mixin gradient-x-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
|
@mixin gradient-x-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
|
||||||
background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);
|
background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 gets no color-stop at all for proper fallback
|
|
||||||
}
|
}
|
||||||
@mixin gradient-y-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
|
@mixin gradient-y-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
|
||||||
background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);
|
background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 gets no color-stop at all for proper fallback
|
|
||||||
}
|
}
|
||||||
@mixin gradient-radial($inner-color: #555, $outer-color: #333) {
|
@mixin gradient-radial($inner-color: #555, $outer-color: #333) {
|
||||||
background-image: radial-gradient(circle, $inner-color, $outer-color);
|
background-image: radial-gradient(circle, $inner-color, $outer-color);
|
||||||
@ -40,4 +35,4 @@
|
|||||||
}
|
}
|
||||||
@mixin gradient-striped($color: rgba(255,255,255,.15), $angle: 45deg) {
|
@mixin gradient-striped($color: rgba(255,255,255,.15), $angle: 45deg) {
|
||||||
background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
|
background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
|
||||||
}
|
}
|
||||||
|
@ -13,11 +13,4 @@
|
|||||||
&[value]::-ms-fill {
|
&[value]::-ms-fill {
|
||||||
background-color: $color;
|
background-color: $color;
|
||||||
}
|
}
|
||||||
|
|
||||||
// IE9
|
|
||||||
@media screen and (min-width:0\0) {
|
|
||||||
.progress-bar {
|
|
||||||
background-color: $color;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -1,8 +0,0 @@
|
|||||||
// Reset filters for IE
|
|
||||||
//
|
|
||||||
// When you need to remove a gradient background, do not forget to use this to reset
|
|
||||||
// the IE filter for IE9.
|
|
||||||
|
|
||||||
@mixin reset-filter() {
|
|
||||||
filter: "progid:DXImageTransform.Microsoft.gradient(enabled = false)";
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user