代码之家  ›  专栏  ›  技术社区  ›  mwal

用vw单位减去像素量定义的网格列?

  •  0
  • mwal  · 技术社区  · 6 年前

    我有一个网格 grid-template-columns: 30vw 20vw 30vw;

    我想从其中两个宽度中减去一个固定的像素值,例如,我希望第一列的计算宽度为 30vw - 1px 是的。

    我想要的是(下面的代码不起作用):

    grid-template-columns: calc(30vw-1px) 20vw calc(30vw-1px);

    这样我就可以在网格的外部得到一个边框,它仍然可以作为视区比例使用(也不希望用vw单位定义边框-希望它的固定宽度为1px)。

    有可能吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Michael Benjamin    6 年前

    你的 calc() 参数无效。

    你有这个:

    grid-template-columns: calc(30vw-1px) 20vw calc(30vw-1px)
    

    你需要这样做:

    grid-template-columns: calc(30vw - 1px) 20vw calc(30vw - 1px)
    

    来自MDN:

    calc()

    这个 + - 运算符必须由空格包围。

    例如, calc(50% -8px) 将被分析为后面的百分比 以负数长度-一个无效的表达式-while calc(50% - 8px) 是 百分比,后跟减法运算符和长度。

    同样地, calc(8px + -50%) 被视为长度后跟 加法运算符和负百分比。

    这个 * / 运算符不需要空白,但将其添加到 一致性是允许的,也是推荐的。