IE 11中带有媒体查询的嵌套CSS自定义属性(CSS变量)?

时间:2019-06-07 08:12:24

标签: css gulp internet-explorer-11 postcss css-variables

我的设置:

// Set CSS Vars
:root {
  // These variables control everything
  /* set base values */
  --text-base-size: 1.125em;
  /* This is for smaller text (sm and down) */
  --text-scale-ratio-down: 1.15;
  /* This is for larger text (md and up) */
  --text-scale-ratio-up: 1.18;

  // Calculate sizes
  --text-xxs: calc(((1em / var(--text-scale-ratio-down)) / var(--text-scale-ratio-down)) / var(--text-scale-ratio-down));
  --text-xs: calc(var(--text-xxs) * var(--text-scale-ratio-down));
  --text-sm: calc(var(--text-xs) * var(--text-scale-ratio-down));
  --text-md: calc(1em * var(--text-scale-ratio-up));
  --text-lg: calc(var(--text-md) * var(--text-scale-ratio-up));
  --text-xl: calc(var(--text-lg) * var(--text-scale-ratio-up));
  --text-xxl: calc(var(--text-xl) * var(--text-scale-ratio-up));
  --text-xxxl: calc(var(--text-xxl) * var(--text-scale-ratio-up));
  --text-xxxxl: calc(var(--text-xxxl) * var(--text-scale-ratio-up));
}

// Responsive
// Override variables for recalculation on desktops
@include mq(xxl){
    :root {
    /* set base values */
    --text-base-size: 1.313em;
    /* This is for smaller text (sm and down) */
    --text-scale-ratio-down: 1.18;
    /* This is for larger text (md and up) */
    --text-scale-ratio-up: 1.22;
  }
}

body {
  // Set base font size
  font-size: var(--text-base-size);
}

// Set font-size
h1 {
  font-size: var(--text-xxxl);
}

使用postcss-preset-env进行编译后,它看起来类似于 IE 11 中的内容:

h1 {
font-size: 1.93878em;
font-size:var(--text-xxxl);");
}

IE 11无法理解自定义属性,因此使用值 1.93878em 。该值是由postcss-preset-env静态计算的。

这在移动设备上是正确的!在较大的桌面上,CSS变量由media-query调整,并且文本显示较大。

这在这里不起作用,因为IE 11无法识别媒体查询中CSS变量的更新。也许是行不通的,因为CSS变量是嵌套的?

IE 11的解决方案是什么样的?

1 个答案:

答案 0 :(得分:1)

您可以使用polyfill,它可以帮助我获得CDN https://github.com/nuxodin/ie11CustomProperties