Remove Internet Explorer specific CSS hacks, bugfixes and styles#6993
Draft
querkmachine wants to merge 4 commits into
Draft
Remove Internet Explorer specific CSS hacks, bugfixes and styles#6993querkmachine wants to merge 4 commits into
querkmachine wants to merge 4 commits into
Conversation
We ended support for all versions of IE in Frontend v6, so these styles aren't needed anymore. Some of the media query and selector hacks get flagged as invalid CSS as well, which isn't ideal! This retains hacks for EdgeHTML/pre-Chromium versions of Microsoft Edge, as those are still considered Grade C in our current browser support criteria.
Due to supporting IE, these previously set a hover state and then removed it from user agents that didn't require it. Having ended support for IE, we can now only set the hover state if it's needed.
Stylesheets changes to npm packagediff --git a/packages/govuk-frontend/dist/govuk/govuk-frontend.min.css b/packages/govuk-frontend/dist/govuk/govuk-frontend.min.css
index 1e80782ff..a0bdb51cf 100644
--- a/packages/govuk-frontend/dist/govuk/govuk-frontend.min.css
+++ b/packages/govuk-frontend/dist/govuk/govuk-frontend.min.css
@@ -711,7 +711,6 @@
font-size: 1.1875rem;
line-height: 1;
display: inline-block;
- max-width: 100%;
margin-top: 5px;
margin-bottom: 20px;
text-align: center
@@ -940,7 +939,6 @@
}
.govuk-main-wrapper {
- display: block;
padding-top: 20px;
padding-bottom: 20px
}
@@ -982,12 +980,6 @@
}
}
-@media screen {
- .govuk-template {
- overflow-y: scroll
- }
-}
-
.govuk-template__body {
margin: 0;
background-color: var(--govuk-body-background-colour, #fff)
@@ -2136,7 +2128,6 @@
font-size: 1.1875rem;
line-height: 1.3157894737;
box-sizing: border-box;
- display: table;
max-width: 100%;
margin-bottom: 10px;
padding: 0;
@@ -2280,7 +2271,6 @@
transform: rotate(-45deg);
border: solid;
border-width: 0 0 5px 5px;
- border-top-color: transparent;
opacity: 0
}
@@ -2411,25 +2401,16 @@ screen and (forced-colors:active) {
box-shadow: 0 0 0 10px var(--govuk-hover-colour, #cecece)
}
-.govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:focus+.govuk-checkboxes__label:before {
- box-shadow: 0 0 0 3px var(--govuk-focus-colour, #fd0), 0 0 0 10px var(--govuk-hover-colour, #cecece)
-}
-
-@media (-ms-high-contrast:active),
-screen and (forced-colors:active) {
+@media (hover:hover) {
.govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:focus+.govuk-checkboxes__label:before {
- outline-color: Highlight
+ box-shadow: 0 0 0 3px var(--govuk-focus-colour, #fd0), 0 0 0 10px var(--govuk-hover-colour, #cecece)
}
}
-@media (hover:none),
-(pointer:coarse) {
- .govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:not(:disabled)+.govuk-checkboxes__label:before {
- box-shadow: none
- }
-
+@media (hover:hover) and (-ms-high-contrast:active),
+screen and (hover:hover) and (forced-colors:active) {
.govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:focus+.govuk-checkboxes__label:before {
- box-shadow: 0 0 0 3px var(--govuk-focus-colour, #fd0)
+ outline-color: Highlight
}
}
@@ -2719,29 +2700,6 @@ screen and (forced-colors:active) {
margin-bottom: 0
}
-@media screen\0 {
- .govuk-details {
- border-left: 10px solid;
- border-left-color: var(--govuk-border-colour, #cecece)
- }
-
- .govuk-details__summary {
- margin-top: 15px
- }
-
- .govuk-details__summary-text {
- font-weight: 700;
- margin-bottom: 15px;
- padding-left: 20px
- }
-}
-
-@media screen\0 and (min-width:40.0625em) {
- .govuk-details__summary-text {
- margin-bottom: 20px
- }
-}
-
@supports not (-ms-ime-align:auto) {
.govuk-details__summary {
position: relative;
@@ -4148,7 +4106,6 @@ screen and (forced-colors:active) {
@media (max-width:40.0525em) {
.govuk-panel {
padding: 15px;
- word-wrap: break-word;
overflow-wrap: break-word
}
}
@@ -4554,25 +4511,16 @@ screen and (forced-colors:active) {
box-shadow: 0 0 0 10px var(--govuk-hover-colour, #cecece)
}
-.govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:focus+.govuk-radios__label:before {
- box-shadow: 0 0 0 4px var(--govuk-focus-colour, #fd0), 0 0 0 10px var(--govuk-hover-colour, #cecece)
-}
-
-@media (-ms-high-contrast:active),
-screen and (forced-colors:active) {
+@media (hover:hover) {
.govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:focus+.govuk-radios__label:before {
- outline-color: Highlight
+ box-shadow: 0 0 0 4px var(--govuk-focus-colour, #fd0), 0 0 0 10px var(--govuk-hover-colour, #cecece)
}
}
-@media (hover:none),
-(pointer:coarse) {
- .govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:not(:disabled)+.govuk-radios__label:before {
- box-shadow: none
- }
-
+@media (hover:hover) and (-ms-high-contrast:active),
+screen and (hover:hover) and (forced-colors:active) {
.govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:focus+.govuk-radios__label:before {
- box-shadow: 0 0 0 4px var(--govuk-focus-colour, #fd0)
+ outline-color: Highlight
}
}
@@ -4882,12 +4830,6 @@ screen and (forced-colors:active) {
}
}
-@media screen and (min-width:40.0625em) and (min-width:0\0) {
- .govuk-service-navigation__list {
- display: block
- }
-}
-
.govuk-service-navigation__active-fallback {
font-weight: inherit
}
@@ -4940,14 +4882,13 @@ screen and (forced-colors:active) {
padding: 10px 15px
}
-.govuk-skip-link:not(:active):not(:focus):not(.\:focus) {
+.govuk-skip-link:not(:active):not(.\:focus):not(:focus) {
position: absolute !important;
width: 1px !important;
height: 1px !important;
margin: 0 !important;
padding: 0 !important;
overflow: hidden !important;
- clip: rect(0 0 0 0) !important;
-webkit-clip-path: inset(50%) !important;
clip-path: inset(50%) !important;
border: 0 !important;
@@ -5283,10 +5224,6 @@ screen and (forced-colors:active) {
@media (-ms-high-contrast:none),
screen and (-ms-high-contrast:active) {
- .govuk-summary-card__action {
- margin-bottom: 5px
- }
-
.govuk-summary-card__action:last-child {
margin-bottom: 0
}
@@ -5827,7 +5764,6 @@ screen and (-ms-high-contrast:active) {
margin: 0 !important;
padding: 0 !important;
overflow: hidden !important;
- clip: rect(0 0 0 0) !important;
-webkit-clip-path: inset(50%) !important;
clip-path: inset(50%) !important;
border: 0 !important;
@@ -5842,14 +5778,13 @@ screen and (-ms-high-contrast:active) {
content: " "
}
-.govuk-visually-hidden-focusable:not(:active):not(:focus):not(.\:focus) {
+.govuk-visually-hidden-focusable:not(:active):not(.\:focus):not(:focus) {
position: absolute !important;
width: 1px !important;
height: 1px !important;
margin: 0 !important;
padding: 0 !important;
overflow: hidden !important;
- clip: rect(0 0 0 0) !important;
-webkit-clip-path: inset(50%) !important;
clip-path: inset(50%) !important;
border: 0 !important;
Action run for 0678d3b |
Other changes to npm packagediff --git a/packages/govuk-frontend/dist/govuk/components/checkboxes/_mixin.scss b/packages/govuk-frontend/dist/govuk/components/checkboxes/_mixin.scss
index 295c2339f..cc600bfa0 100644
--- a/packages/govuk-frontend/dist/govuk/components/checkboxes/_mixin.scss
+++ b/packages/govuk-frontend/dist/govuk/components/checkboxes/_mixin.scss
@@ -78,9 +78,6 @@
transform: rotate(-45deg);
border: solid;
border-width: 0 0 5px 5px;
- // Fix bug in IE11 caused by transform rotate (-45deg).
- // See: alphagov/govuk_elements/issues/518
- border-top-color: transparent;
opacity: 0;
background: transparent;
}
@@ -280,30 +277,18 @@
//
// We use two box shadows, one that restores the original focus state [1]
// and another that then applies the hover state [2].
- .govuk-checkboxes__item:hover .govuk-checkboxes__input:focus + .govuk-checkboxes__label::before {
- // Set different HCM colour when we have both hover/focus applied at once
- @media screen and (forced-colors: active), (-ms-high-contrast: active) {
- outline-color: Highlight;
- }
- // prettier-ignore
- box-shadow:
- 0 0 0 base.$govuk-focus-width base.govuk-functional-colour(focus), // 1
- 0 0 0 base.$govuk-hover-width base.govuk-functional-colour(hover); // 2
- }
-
- // For devices that explicitly don't support hover, don't provide a hover
- // state (e.g. on touch devices like iOS).
//
- // We can't use `@media (hover: hover)` because we wouldn't get the hover
- // state in browsers that don't support `@media (hover)` (like Internet
- // Explorer) – so we have to 'undo' the hover state instead.
- @media (hover: none), (pointer: coarse) {
- .govuk-checkboxes__item:hover .govuk-checkboxes__input:not(:disabled) + .govuk-checkboxes__label::before {
- box-shadow: initial;
- }
-
+ // We only want this to apply to browsers that support hover states.
+ @media (hover: hover) {
.govuk-checkboxes__item:hover .govuk-checkboxes__input:focus + .govuk-checkboxes__label::before {
- box-shadow: 0 0 0 base.$govuk-focus-width base.govuk-functional-colour(focus);
+ // Set different HCM colour when we have both hover/focus applied at once
+ @media screen and (forced-colors: active), (-ms-high-contrast: active) {
+ outline-color: Highlight;
+ }
+ // prettier-ignore
+ box-shadow:
+ 0 0 0 base.$govuk-focus-width base.govuk-functional-colour(focus), // 1
+ 0 0 0 base.$govuk-hover-width base.govuk-functional-colour(hover); // 2
}
}
}
diff --git a/packages/govuk-frontend/dist/govuk/components/details/_mixin.scss b/packages/govuk-frontend/dist/govuk/components/details/_mixin.scss
index 83d5dd270..dce9bfade 100644
--- a/packages/govuk-frontend/dist/govuk/components/details/_mixin.scss
+++ b/packages/govuk-frontend/dist/govuk/components/details/_mixin.scss
@@ -44,26 +44,6 @@
margin-bottom: 0;
}
- // Hack to target IE8 - IE11 (and REALLY old Firefox)
- // These browsers don't support the details element, so fall back to looking
- // like inset text
- @media screen\0 {
- .govuk-details {
- border-left: base.$govuk-border-width-wide solid;
- border-left-color: base.govuk-functional-colour(border);
- }
-
- .govuk-details__summary {
- margin-top: base.govuk-spacing(3);
- }
-
- .govuk-details__summary-text {
- @include base.govuk-typography-weight-bold;
- @include base.govuk-responsive-margin(4, "bottom");
- padding-left: base.govuk-spacing(4);
- }
- }
-
// We wrap styles for newer browsers in a feature query, which is ignored by
// older browsers, which always expand the details element.
//
diff --git a/packages/govuk-frontend/dist/govuk/components/fieldset/_mixin.scss b/packages/govuk-frontend/dist/govuk/components/fieldset/_mixin.scss
index c230362e9..2152f5fae 100644
--- a/packages/govuk-frontend/dist/govuk/components/fieldset/_mixin.scss
+++ b/packages/govuk-frontend/dist/govuk/components/fieldset/_mixin.scss
@@ -23,16 +23,12 @@
.govuk-fieldset__legend {
@include base.govuk-font($size: 19);
- // Fix legend text wrapping in Edge and IE
- // 1. IE9-11 & Edge 12-13
- // 2. IE8-11
+ // 1. Fix legend text wrapping in IE9-11 & Edge 12-13
box-sizing: border-box; // 1
- display: table; // 2
max-width: 100%; // 1
margin-bottom: base.govuk-spacing(2);
padding: 0;
color: base.govuk-functional-colour(text);
-
white-space: normal; // 1
}
diff --git a/packages/govuk-frontend/dist/govuk/components/panel/_mixin.scss b/packages/govuk-frontend/dist/govuk/components/panel/_mixin.scss
index 566c3998c..1937e7d3c 100644
--- a/packages/govuk-frontend/dist/govuk/components/panel/_mixin.scss
+++ b/packages/govuk-frontend/dist/govuk/components/panel/_mixin.scss
@@ -17,9 +17,6 @@
@media #{base.govuk-until-breakpoint(tablet)} {
padding: base.govuk-spacing(4) - base.$govuk-border-width;
- // Support IE (autoprefixer doesn't add this as it's not a prefix)
- word-wrap: break-word;
-
// This is an if-all-else-fails attempt to stop long words from
// overflowing the container on very narrow viewports by forcing them to
// break and wrap instead. This overflowing is more likely to happen when
diff --git a/packages/govuk-frontend/dist/govuk/components/password-input/_mixin.scss b/packages/govuk-frontend/dist/govuk/components/password-input/_mixin.scss
index edf5bbca5..0d23527de 100644
--- a/packages/govuk-frontend/dist/govuk/components/password-input/_mixin.scss
+++ b/packages/govuk-frontend/dist/govuk/components/password-input/_mixin.scss
@@ -19,8 +19,8 @@
}
.govuk-password-input__input {
- // IE 11 and Microsoft Edge comes with its own password reveal function. We
- // want to hide it, so that there aren't two controls presented to the user
+ // Microsoft Edge comes with its own password reveal function. We want
+ // to hide it, so that there aren't two controls presented to the user
// that do the same thing but aren't in sync with one another. This doesn't
// affect the function that allows Edge users to toggle password visibility
// by pressing Alt+F8, which cannot be programmatically disabled.
diff --git a/packages/govuk-frontend/dist/govuk/components/radios/_mixin.scss b/packages/govuk-frontend/dist/govuk/components/radios/_mixin.scss
index 7fdfe3a9f..011049c7a 100644
--- a/packages/govuk-frontend/dist/govuk/components/radios/_mixin.scss
+++ b/packages/govuk-frontend/dist/govuk/components/radios/_mixin.scss
@@ -299,30 +299,18 @@
//
// We use two box shadows, one that restores the original focus state [1]
// and another that then applies the hover state [2].
- .govuk-radios__item:hover .govuk-radios__input:focus + .govuk-radios__label::before {
- // Set different HCM colour when we have both hover/focus applied at once
- @media screen and (forced-colors: active), (-ms-high-contrast: active) {
- outline-color: Highlight;
- }
- // prettier-ignore
- box-shadow:
- 0 0 0 $govuk-radios-focus-width base.govuk-functional-colour(focus), // 1
- 0 0 0 base.$govuk-hover-width base.govuk-functional-colour(hover); // 2
- }
-
- // For devices that explicitly don't support hover, don't provide a hover
- // state (e.g. on touch devices like iOS).
//
- // We can't use `@media (hover: hover)` because we wouldn't get the hover
- // state in browsers that don't support `@media (hover)` (like Internet
- // Explorer) – so we have to 'undo' the hover state instead.
- @media (hover: none), (pointer: coarse) {
- .govuk-radios__item:hover .govuk-radios__input:not(:disabled) + .govuk-radios__label::before {
- box-shadow: initial;
- }
-
+ // We only want this to apply to browsers that support hover states.
+ @media (hover: hover) {
.govuk-radios__item:hover .govuk-radios__input:focus + .govuk-radios__label::before {
- box-shadow: 0 0 0 $govuk-radios-focus-width base.govuk-functional-colour(focus);
+ // Set different HCM colour when we have both hover/focus applied at once
+ @media screen and (forced-colors: active), (-ms-high-contrast: active) {
+ outline-color: Highlight;
+ }
+ // prettier-ignore
+ box-shadow:
+ 0 0 0 $govuk-radios-focus-width base.govuk-functional-colour(focus), // 1
+ 0 0 0 base.$govuk-hover-width base.govuk-functional-colour(hover); // 2
}
}
}
diff --git a/packages/govuk-frontend/dist/govuk/components/service-navigation/_mixin.scss b/packages/govuk-frontend/dist/govuk/components/service-navigation/_mixin.scss
index 96d26fc6c..f7e3cb0ea 100644
--- a/packages/govuk-frontend/dist/govuk/components/service-navigation/_mixin.scss
+++ b/packages/govuk-frontend/dist/govuk/components/service-navigation/_mixin.scss
@@ -174,16 +174,6 @@
display: flex;
flex-wrap: wrap;
margin-bottom: 0;
-
- // However... IE11 totally trips over flexbox and doesn't wrap anything,
- // making all of the items into a single, horizontally scrolling row,
- // which is no good. This CSS hack removes the flexbox definition for
- // IE 9–11, reverting it to the flawed, but OK, non-flexbox version.
- //
- // CSS hack from http://browserhacks.com/#hack-a60b03e301a67f76a5a22221c739dc64
- @media screen and (min-width: 0\0) {
- display: block;
- }
}
}
diff --git a/packages/govuk-frontend/dist/govuk/components/summary-list/_mixin.scss b/packages/govuk-frontend/dist/govuk/components/summary-list/_mixin.scss
index 18de5472b..c8bb4a62b 100644
--- a/packages/govuk-frontend/dist/govuk/components/summary-list/_mixin.scss
+++ b/packages/govuk-frontend/dist/govuk/components/summary-list/_mixin.scss
@@ -244,19 +244,6 @@
.govuk-summary-card__action {
display: inline;
-
- // We use the following media query to target IE11 and 10 only to add margin
- // between actions.
- //
- // We do this because we're using row-gap to create space between actions on
- // more evergreen browsers which IE doesn't support. @supports currently isn't
- // a viable solution, see https://github.com/w3c/csswg-drafts/issues/3559.
- //
- // Solution taken from https://stackoverflow.com/questions/11173106/apply-style-only-on-ie#answer-36448860
- // which also includes an explanation of why this works
- @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
- margin-bottom: base.govuk-spacing(1);
- }
}
.govuk-summary-card__action:last-child {
diff --git a/packages/govuk-frontend/dist/govuk/helpers/_links.scss b/packages/govuk-frontend/dist/govuk/helpers/_links.scss
index 332854078..b94093fd1 100644
--- a/packages/govuk-frontend/dist/govuk/helpers/_links.scss
+++ b/packages/govuk-frontend/dist/govuk/helpers/_links.scss
@@ -59,9 +59,9 @@
// Disable ink skipping on underlines on hover. Browsers haven't
// standardised on this part of the spec yet, so set both properties
-webkit-text-decoration-skip-ink: none;
- text-decoration-skip-ink: none; // Chromium, Firefox
+ text-decoration-skip-ink: none; // Chromium, Firefox, Safari 15.4+
-webkit-text-decoration-skip: none;
- text-decoration-skip: none; // Safari
+ text-decoration-skip: none; // Safari 12.1–15.3
}
}
diff --git a/packages/govuk-frontend/dist/govuk/helpers/_visually-hidden.scss b/packages/govuk-frontend/dist/govuk/helpers/_visually-hidden.scss
index 134283629..ca78ba018 100644
--- a/packages/govuk-frontend/dist/govuk/helpers/_visually-hidden.scss
+++ b/packages/govuk-frontend/dist/govuk/helpers/_visually-hidden.scss
@@ -26,9 +26,6 @@
padding: 0 govuk-if($important, !important);
overflow: hidden govuk-if($important, !important);
-
- // `clip` is needed for IE11 support
- clip: rect(0 0 0 0) govuk-if($important, !important);
-webkit-clip-path: inset(50%) govuk-if($important, !important);
clip-path: inset(50%) govuk-if($important, !important);
@@ -78,11 +75,10 @@
/// @access public
@mixin govuk-visually-hidden-focusable($important: true) {
- // IE 11 doesn't support the combined `:not(:active, :focus)` syntax.
// Also allows for ':focus' companion classes from postcss-pseudo-classes
// which the plugin unfortunately doesn't handle automatically.
// stylelint-disable-next-line selector-class-pattern
- &:not(:active):not(:focus):not(.\:focus) {
+ &:not(:active):not(.\:focus):not(:focus) {
@include _govuk-visually-hide-content($important: $important);
}
}
diff --git a/packages/govuk-frontend/dist/govuk/objects/_button-group.mixin.scss b/packages/govuk-frontend/dist/govuk/objects/_button-group.mixin.scss
index ad6d3c337..c5212df0c 100644
--- a/packages/govuk-frontend/dist/govuk/objects/_button-group.mixin.scss
+++ b/packages/govuk-frontend/dist/govuk/objects/_button-group.mixin.scss
@@ -42,9 +42,6 @@
.govuk-link {
@include base.govuk-font($size: 19, $line-height: 19px);
display: inline-block;
- // Prevent links overflowing their container in IE10/11 because of bug
- // with align-items: center
- max-width: 100%;
margin-top: $link-spacing;
margin-bottom: $link-spacing + $vertical-gap;
text-align: center;
diff --git a/packages/govuk-frontend/dist/govuk/objects/_main-wrapper.mixin.scss b/packages/govuk-frontend/dist/govuk/objects/_main-wrapper.mixin.scss
index b447b35f6..b3bbc75b7 100644
--- a/packages/govuk-frontend/dist/govuk/objects/_main-wrapper.mixin.scss
+++ b/packages/govuk-frontend/dist/govuk/objects/_main-wrapper.mixin.scss
@@ -24,10 +24,6 @@
/// @access private
@mixin styles {
.govuk-main-wrapper {
- // In IE11 the `main` element can be used, but is not recognized –
- // meaning it's not defined in IE's default style sheet,
- // so it uses CSS initial value, which is inline.
- display: block;
padding-top: base.govuk-spacing(4);
padding-bottom: base.govuk-spacing(4);
diff --git a/packages/govuk-frontend/dist/govuk/objects/_template.mixin.scss b/packages/govuk-frontend/dist/govuk/objects/_template.mixin.scss
index 30192ad2d..cdad156bf 100644
--- a/packages/govuk-frontend/dist/govuk/objects/_template.mixin.scss
+++ b/packages/govuk-frontend/dist/govuk/objects/_template.mixin.scss
@@ -33,12 +33,6 @@
scroll-padding-top: 0;
}
}
-
- // Force the scrollbar to always display in IE, to prevent horizontal page
- // jumps as content height changes (e.g. autocomplete results open).
- @media screen {
- overflow-y: scroll;
- }
}
// Applied to the <body> element
Action run for 0678d3b |
📋 StatsFile sizes
No changes to module sizes. Action run for 0678d3b |
NickColley
reviewed
Apr 28, 2026
| overflow: hidden govuk-if($important, !important); | ||
|
|
||
| // `clip` is needed for IE11 support | ||
| clip: rect(0 0 0 0) govuk-if($important, !important); |
Contributor
There was a problem hiding this comment.
I feel like given that IE11 may be used by some disabled people using assistive technologies (screen readers) that maybe this is justified to leave in if it's not causing any grief for users?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
We ended support for all versions of IE in Frontend v6, so these styles aren't needed anymore.
Warning
...OR DID WE??
Some of the hacks (particularly
@media (min-width: 0\0)and probably@media screen\0) can trip up CSS post-processors and validation tools, so it's nice to get rid of them.This retains hacks connected to EdgeHTML (pre-Chromium) versions of Microsoft Edge, as those are still considered Grade C by our current browser support criteria. I've also added a little more detail to a style intended for older versions of Safari.