【发布时间】:2019-03-18 08:36:47
【问题描述】:
我想做的是通过calc(var(--grid-item-width) * 1.6) 将#grid height 设为#grid width 的160%,但似乎--grid-item-width 被视为视口宽度的百分比而不是像素值。
#grid 的高度远大于其宽度的 160%,如下面的屏幕截图所示。
:root {
--gap: 26px;
--grid-item-width: calc(100% - calc(var(--gap) * 4));
}
#grid {
width: 100%;
height: var(--grid-item-width); /* does not match */
overflow-x: auto;
display: grid;
grid-gap: var(--gap);
grid-auto-flow: column;
grid-auto-columns: var(--grid-item-width); /* does not match */
}
当我将--grid-item-width 的值打印到控制台时,它返回calc(100% - calc( 26px * 4)),这显然没有帮助。
MDN 上关于calc() 的注释之一指出:
涉及自动和固定布局表格中表格列、表格列组、表格行、表格行组和表格单元格的宽度和高度百分比的数学表达式可能被视为已指定 auto。
这就是为什么calc(var(--grid-item-width) * 1.6) 在这种情况下会有意外的输出吗?
【问题讨论】: