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

IE11-CSS变量是否存在polyfill /脚本?

凤晨朗
2023-03-14
问题内容

我正在混合Web浏览器环境(Chrome/IE11)中开发网页。IE11不支持CSS变量,是否存在可以让我在IE11中使用CSS变量的polyfill或脚本?


问题答案:

是的,只要您正在处理根级自定义属性(IE9 +)。

  • GitHub
  • NPM
  • 演示

从自述文件

特征

  • 客户端将CSS自定义属性转换为静态值
  • 在现代和旧版浏览器中实时更新运行时值
  • 变换<link><style>@importCSS
  • 将相对url()路径转换为绝对URL
  • 支持链接和嵌套var()功能
  • 支持var()功能后备值
  • 支持Web组件/阴影DOM CSS
  • 观看模式会自动更新<link><style>更改
  • 提供UMD和ES6模块
  • 包含TypeScript定义
  • 轻量级(至少6k + gzip)且无依赖

局限性

  • 自定义属性支持仅限于:root:host声明
  • var()的使用仅限于属性值(根据W3C规范)

以下是库可以处理的一些示例:

根级自定义属性

:root {
    --a: red;
}

p {
    color: var(--a);
}

链接的自定义属性

:root {
    --a: var(--b);
    --b: var(--c);
    --c: red;
}

p {
    color: var(--a);
}

嵌套的自定义属性

:root {
    --a: 1em;
    --b: 2;
}

p {
    font-size: calc(var(--a) * var(--b));
}

后备值

p {
    font-size: var(--a, 1rem);
    color: var(--b, var(--c, var(--d, red))); 
}

变换<link><style>@importCSS

<link rel="stylesheet" href="/absolute/path/to/style.css">
<link rel="stylesheet" href="../relative/path/to/style.css">

<style>
    @import "/absolute/path/to/style.css";
    @import "../relative/path/to/style.css";
</style>

转换Web组件/阴影DOM

<custom-element>
  #shadow-root
    <style>
      .my-custom-element {
        color: var(--test-color);
      }
    </style>
    <div class="my-custom-element">Hello.</div>
</custom-element>

为了完整性:w3c规格

希望这可以帮助。



 类似资料:
  • 问题内容: 我想检查一个变量是否存在。现在我正在做这样的事情: 是否有其他方法无一例外? 问题答案: 要检查是否存在局部变量: 要检查是否存在全局变量: 要检查对象是否具有属性:

  • 我有一个Typescript项目,我需要知道变量的值是否在对象的任何属性中。 这就是目标: 这是声明的变量: 以下是我检查它是否存在的步骤: 问题:做三次检查会在其他机器上运行三次 我需要知道的是,如何检查它是否存在,而不需要迭代对象,如果它不存在,只需操作一次

  • 问题内容: 我正在编写一个脚本来备份数据库。我有以下几行: 我想将stderr分配给一个变量,以便它将向自己发送一封电子邮件,让我知道如果出现问题,会发生什么。我已经找到了将stderr重定向到stdout的解决方案,但是由于stdout已经(通过gzip)发送到文件中,因此我无法做到这一点。如何将stderr分别存储在变量$ result中? 问题答案: 尝试将stderr重定向到stdout并

  • 问题内容: 我有一个脚本,可以用来构造表和存储过程。例如,我有一个类型为的列。需要一个size参数,该大小我也用作存储过程以及这些过程中的参数。 是否有可能具有a的等价形式,因此我可以轻松调整大小而无需在整个脚本中进行更改? 我正在使用MySql工作台。 编辑 我曾尝试和 我有一个脚本-这是(删节的) 我想要实现的是用一个 常量 替换脚本中的值25-类似于创建表和存储过程的脚本顶部的a ,因此我能

  • 问题内容: 我有一个Freemarker模板,其中包含一堆占位符,在处理模板时会为其提供值。如果要提供userName变量,我想有条件地包括模板的一部分,例如: 但是,FreeMarker手册似乎表明if_exists已过时,但是我找不到其他方法来实现这一目标。当然,我可以简单地提供一个额外的布尔变量isUserName,并像这样使用它: 但是,如果有一种方法可以检查userName是否存在,那么

  • 问题内容: 我试图用bash编写脚本来检查用户输入的有效性。 我想将输入(例如变量)与有效值列表进行匹配。 我目前想出的是: 我的问题是,是否有更简单的方法可以做到这一点, 就像大多数编程语言一样。 另外: 说的清单是: 我的代码将仅针对那些值回显该消息,因为将其视为数组而不是字符串,所有字符串操作都将验证,而我希望它失败。 问题答案: 或创建一个函数: 使用它: