按相同数量的像素缩放 X 和 Y 中的元素

Scale element in X and Y by the same amount of pixels

我想在 X 和 Y 方向上按相同绝对数量的像素(不相同的比例)缩放元素,这样

newWidth = oldWidth + n
newHeight = oldHeight + n

其中 n 是尺寸增加的像素数,oldWidtholdHeight 未知。

有没有办法在纯 CSS 中做到这一点?

您可以像这样使用 CSS 个变量:

CSS

:root {
    --n: 100px
}
.sample {
    width: calc(300px + var(--n));
    height: calc(200px + var(--n));
}

比较动态但不推荐:

:root {
    --n: 100px;
    --width: 100px;
    --height: 100px;
}
.sample {
    width: calc(var(--width) + var(--n));
    height: calc(var(--height) + var(--n));
}

和...

:root {
    --n: 100px;
    --width: 100px;
    --height: 100px;
    --new-width: calc(var(--n) + var(--width));
    --new-height: calc(var(--n) + var(--height));
}
.sample {
    width: var(--new-width);
    height: var(--new-height);
}

如果尺寸未知,则不能使用CSS。在这种情况下,只有 JavaScript 可以做到这一点。

要在 JavaScript 中做到这一点,首先获取元素的维度,然后动态地添加或减去一个值。