美文网首页
浏览器 Hack

浏览器 Hack

作者: lio_zero | 来源:发表于2021-05-10 00:46 被阅读0次

    浏览器 Hack 表示各个浏览器下的兼容性问题。

    由于不同的浏览器和浏览器各版本对 CSS 的支持及解析结果不一样,以及 CSS 优先级对浏览器展现效果的影响,我们可以据此针对不同的浏览器情景来应用不同的 CSS。同样,包括 JavaScript,不同的浏览器也有一些 Hack,这里我们举例一些 CSS 示例。

    仅限 Mozilla

    @-moz-document url-prefix() {
      .box { 
        color: blue; 
      }
    }
    

    仅限 Webkit

    @media all and (-webkit-min-device-pixel-ratio: 1) {}
    

    仅限 IE

    IE6 能识别下划线 _ 和星号 *

    .box {
      *background: plum; /* IE6 */
    }
    

    IE7 能识别星号 *,但不能识别下划线 _

    .box {
      _background: plum; /* IE6 */
    }
    

    条件注释,只在 IE 上有效

    <!--[if IE 6]> Internet Explorer 6 <![endif]-->
    <!--[if IE 7]> Internet Explorer 7 <![endif]-->
    <!--[if IE 8]> Internet Explorer 8 <![endif]-->
    <!--[if IE 9]> Internet Explorer 9 <![endif]-->
    
    
    <!--[if lte IE 6]> Internet Explorer 6 or less <![endif]-->
    <!--[if lte IE 7]> Internet Explorer 7 or less <![endif]-->
    <!--[if lte IE 8]> Internet Explorer 8 or less <![endif]-->
    <!--[if lte IE 9]> Internet Explorer 9 or less <![endif]-->
    
    
    <!--[if gte IE 6]> Internet Explorer 6 or greater <![endif]-->
    <!--[if gte IE 7]> Internet Explorer 7 or greater <![endif]-->
    <!--[if gte IE 8]> Internet Explorer 8 or greater <![endif]-->
    <!--[if gte IE 9]> Internet Explorer 9 or greater <![endif]-->
    

    清除浮动 hack

    /**
     * For modern browsers
     * 1. The space content is one way to avoid an Opera bug when the
     *    contenteditable attribute is included anywhere else in the document.
     *    Otherwise it causes space to appear at the top and bottom of elements
     *    that are clearfixed.
     * 2. The use of `table` rather than `block` is only necessary if using
     *    `:before` to contain the top-margins of child elements.
     */
    .cf:before,
    .cf:after {
        content: " "; /* 1 */
        display: table; /* 2 */
    }
    
    .cf:after {
        clear: both;
    }
    
    /**
     * For IE 6/7 only
     * Include this rule to trigger hasLayout and contain floats.
     */
    .cf {
      *zoom: 1;
    }
    

    以上代码来自 A new micro clearfix hack,其对清除浮动做出了简单的解释。

    更多

    • BROWSERHACKS 网站列出了来自整个互连网的特定于浏览器的 CSS 和 JavaScript hack

    • Can I Use 可以查看属性的兼容情况

    相关文章

      网友评论

          本文标题:浏览器 Hack

          本文链接:https://www.haomeiwen.com/subject/uorbdltx.html