css 目标是 IE 和 Microsoft Edge

css target IE and Microsoft Edge

针对 IE 和 Microsoft Edge 申请特定 css 的正确方法是什么?

这是我的将军css:

.details-list {
    font-size: 13px;
    font-style: italic;
    display: table;
    margin: 0 auto;
}

所以,假设我只想增加 Microssft Edge 和 IE 的字体大小。

最好的方法是什么(sass 已设置 - 如果有帮助的话)?

欢迎任何帮助!

通常应避免使用特定于浏览器的 CSS,但如果您确实需要,则有多种可能性。这些应该是最常见的:

  1. 在 html 中使用条件注释来针对特定的 IE 版本: https://msdn.microsoft.com/en-us/library/ms537512(v=vs.85).aspx

  2. 通过编写语法错误 CSS 使用 css hacks,这(由于自动更正)仍然适用于某些 browsers/versions。 http://browserhacks.com/对于这个

  3. 来说是一个很好的合集
  4. 使用JavaScript设置一个CSS-Class like is-internet-explorer,然后在css中用来定位只有这样的浏览器。由于 userAgent 评估非常困难,并且浏览器经常伪装成另一个浏览器,因此您应该使用 JavaScript-Library 来完成这项繁琐的任务(例如 https://github.com/DamonOehlman/detect-browser

  5. 使用一些服务器端逻辑来提供额外的 CSS-Filer 或设置额外的 class。这与#3 基本相同,但在服务器端。

如果您正在寻找特定的 CSS 语句(例如 object-fit:cover),请使用特征检测。这有一些好处,包括如果浏览器实现了 属性 也能正常工作。

@supports (object-fit:cover) {
    .element {
        height: 100%;
        object-fit:cover;
    }
}

否则你可以使用 CSS Hacks,这里有一个 SASS mixin:

/**
    Applies for all Internet Explorer and Edge versions
**/
@mixin worstBrowsers() {

    /* all IE versions <= 11 */
    @media screen and (-ms-high-contrast: none) {
        @content;
    }

    /* all edge versions */
    @supports (-ms-ime-align:auto) {
        @content;
    }

}


.element {
    @include worstBrowsers {
        font-size: .6em;
    }
}