当前位置: 首页 > 面试题库 >

编译和维护特定于样式的样式表

卢元龙
2023-03-14
问题内容

在单独的CSS文件中维护IE解决方法的常用做法是什么?
我说的是更深层次的问题,这些问题是无法通过其他方法解决的(例如,包括备用图像url和base64编码的嵌入式资源; boxsizing.htc解决方法等。)
注意:考虑到dataURI与香草味,所以只有少数

有时我不得不诉诸类似于

.some-class-lets-say-datepicker {
  background-image: url(data:image/png;base64,/*encoded image*/);
  *background-image: url(../gfx/lets-say-datepicker-icon.png);
}

编码的图像字符串平均为100〜300个字符。给定上面的代码,这将导致一些冗余通信-
兼容的浏览器将下载冗余URL,IE7将在单独的图像请求之上下载base64字符串。我发现这笔开销对于两者而言都是微不足道的(毕竟,IE7用户还有很多更大的问题要担心:)

同时,以下内容(?)会更干净:

<!--[if !IE]> -->
  <link href="main.css" rel="stylesheet" />
<!-- <![endif]-->
<!--[if lt IE 8]>
  <link href="main_ie.css" rel="stylesheet"/>
<![endif]-->

但是单独维护似乎一点也不吸引人。Closure-stylesheets提供条件,SASS / LESS是否有类似的东西,或者您建议使用完全不同的方法?


问题答案:

如果您可以生成2个不同的样式表,那么Sass(版本3.2及更高版本)可以很容易地做到这一点。

这是您的mixins:

$ie-only: false !default;

@mixin hide-from-ie {
    if $ie-only != true {
        @content;
    }
}

@mixin show-only-ie {
    if $ie-only == true {
        @content;
    }
}

在您的SCSS文件中:

.some-class-lets-say-datepicker {
    @include hide-from-ie {
        background-image: url(data:image/png;base64,/*encoded image*/);
    }

    @include show-only-ie {
        background-image: url(../gfx/lets-say-datepicker-icon.png);
    }
}

制作一个单独的IE专用文件,该文件将导入您的其他SCSS文件,但该文件位于顶部:

$ie-only: true;

使用条件注释为旧的IE版本提供已生成的css文件,其中$ ie-only设置为true,其他所有浏览器都将生成的$ ie-
only设置为默认false的文件。



 类似资料:
  • 使用Styles(样式)窗格修改与元素关联的CSS样式。 TL;DR Styles(样式)窗格允许您以尽可能多的方式更改本地CSS,包括编辑现有样式,添加新样式,添加样式规则。 如果你想要样式持久(他们页面重新加载而丢失),您需要将它们持久化到您的开发工作区。 检查应用到元素的样式 选择一个元素[Select an element] 来检查它的样式。Styles(样式)窗格将显示所有应用于所选元素

  • 本文向大家介绍iOS 定制多样式二维码,包括了iOS 定制多样式二维码的使用技巧和注意事项,需要的朋友参考一下 二维码/条形码是按照某种特定的几何图形按一定规律在平台(一维/二维方向上)分布的黑白相间的图形纪录符号信息。使用若干个与二进制对应的几何形体来表示文字数值信息。 最常见的二维码功能包括信息获取、网站跳转、电商交易、手机支付等等,其拥有密度小、信息容量大、容错能力强、成本低、制作难度低等优

  • 问题内容: 我想用Java中的XSLT转换XML。为此,我使用了包装。但是,我得到了例外。这是我正在使用的代码: 请注意,我标记了引发异常的行。 当我输入方法时,的值为: 问题答案: 该构造 从URL构造StreamSource。我认为您正在传递XSLT的内容。试试这个: 你还必须设置你的意愿写:

  • 在MultiAutoCompleteTextView上应用样式:问题是因为OP打算覆盖样式未声明的某些属性。这不是我的问题。 android:MultiAutoCompleteTextView风格,如gmail:这里,OP想要设置与gmail相同的风格,答案显示2 API。此外,没有显示XML代码。因此,这与我的问题和期望大不相同。 我的材质样式似乎没有应用。更准确地说,我只是想让我的(材料!)小

  • 我正在使用C#的AODL库。到目前为止,我已经能够将第二个文档的文本大量导入到第一个文档中。问题是我不知道我需要抓取什么来确保样式也移到合并的文档中。下面是我用来测试的简单代码。我能找到的最接近的答案是从代码中合并两个.odt文件,这多少回答了我的问题,但它仍然没有告诉我需要将样式放在哪里/从哪里获取。它至少让我知道我需要检查第二个文档中的样式,并确保第一个文档中没有匹配的名称,否则将会有冲突。我

  • 有些接口返回的都是根业务相关的状态信息,比如我最近在写邮件报告相关的业务,一个报告有很多状态 1-创建 2-草稿 3-提交 4-批准 5-发布 6-废弃 这些状态我在前端页面显示时都需要配一个icon图标 区分状态显得更好看些,我目前的做法是在util下定义常量 数组中要按后端数据库中这些状态的id大小顺序来定义的 这样我后面取方便些,现在我发现这种类似的接口后面会越来越多,可能都需要配icon图