色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

按相同的像素數量在X和Y軸上縮放元素

錢琪琛1年前7瀏覽0評論

我想在X和Y方向上按相同的絕對像素數量(不是相同的比例)縮放一個元素,這樣

newWidth = oldWidth + n
newHeight = oldHeight + n

其中n是尺寸增加的像素數,oldWidth和oldHeight未知。

在純CSS中有辦法做到嗎?

您可以像這樣使用CSS變量:

半鑄鋼?鋼性鑄鐵(Cast Semi-Steel)

: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中要做到這一點,首先獲取元素的維度,然后動態地增加或減少一個值。

.parent {
  position: relative;
  width: 152px;
  height: 48px;  
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #444;
  cursor: pointer;
}

.parent:hover .children {
  /* scale x,y 16px */
  transform: scaleY(calc(100% - calc(calc(16 * 100%) / 48))) scaleX(calc(100% - calc(calc(16 * 100%) / 152)));
}

.children {
  width: 100%;
  height: 100%;
  border-radius: 4px;
  background-color: #888;  
  transition: transform 200ms linear;
  /* scale x,y 1px */
  transform: scaleY(calc(100% - calc(calc(1 * 100%) / 48))) scaleX(calc(100% - calc(calc(1 * 100%) / 152)));
}

.text {
  top: 0;
  left: 0;
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

<div class="parent">
  <div class="children"></div>
  <div class="text">Hover me</div>
</div>