首页 文章

使用SASS将IE8样式分隔为单独的样式表?

提问于
浏览
1

我有一个SASS mixin rem()将像素单位值转换为rems,但包括IE8的px后备 . 例如,调用以下内容:

@include rem((padding: 15px));

会产生类似的东西:

padding: 15px;
padding: 1.071rem;

问题是 - 对于现代浏览器,我不想包含px后备,因为它每次使用rem()mixin时都会添加不必要的CSS行 . 所以我的问题是:

Question: SASS(或SASS与其他东西一起使用)是否有办法将每个px回退分离成一个单独的ie样式表(例如,"ie-8.css")?

1 回答

  • -1

    我不认为单独使用SASS可以分割SASS输出 . 您可能会编写一个时髦的小程序,扫描您的SASS以查找某些选择器作为其渲染并相应地处理输出,但这超出了我的知识 .

    值得考虑后备选择器对性能的影响有多大 . 加载时间未使用的css选择器have minimal impact . 另一方面,对于IE8样式表的额外http请求,加上在基本样式加载后应用该样式表的时间,我认为是一项要求更高的任务 . 是否's an issue to you depends on how many IE8 users you'重新支持 .

    中途可能是应用IE-specific classes to your <html> tag或容器,并更改mixin,以便仅在该条件类生效时应用回退 .

    HTML

    <!--[if lt IE 7 ]> <html class="ie6"> <![endif]-->
    <!--[if IE 7 ]>    <html class="ie7"> <![endif]-->
    <!--[if IE 8 ]>    <html class="ie8"> <![endif]-->
    <!--[if IE 9 ]>    <html class="ie9"> <![endif]-->
    <!--[if (gt IE 9)|!(IE)]><!--> <html class=""> <!--<![endif]-->
    

    上海社会科学院

    @mixin rem($padding) {
        .ie8 & {
            padding: $padding;
        }
        padding: //calculate your rem value, or vice versa
    }
    

    我已经整理了一些jsfiddle以展示mixin .

相关问题