【问题标题】:calc in linear gradient does not work in IE/Edge线性渐变中的计算在 IE/Edge 中不起作用
【发布时间】:2026-02-02 14:50:01
【问题描述】:

IE 和 Edge 似乎无法正确计算此渐变中的高度。有人有解决办法吗?

background: linear-gradient(180deg, rgba(255,255,255,0) 100px, #f5f5f5 100px, #f5f5f5 calc(100% - 100px), rgba(255,255,255,0) calc(100% - 100px));

【问题讨论】:

    标签: css internet-explorer microsoft-edge linear-gradients


    【解决方案1】:

    在这种情况下,由于您使用的是透明的“条纹”,您可以作弊,使用两个线性渐变,两者都只达到高度的 50%。 p>

    你从顶部开始一个,从底部开始第二个

    div {
      height: 100vh;
      background: 
        linear-gradient(180deg, transparent 100px, #f5f5f5 100px, #f5f5f5 50%, transparent 50%), 
        linear-gradient(0deg, transparent 100px, #f5f5f5 100px, #f5f5f5 50%, transparent 50%);
    }
    body {
      margin: 0;
      padding: 0;
      background: pink; /* for demo purposes */
    }
    <div></div>

    Codepen Demo

    【讨论】: