変形

scale

scale は、要素を拡大・縮小します。transform の scale() と同じ変形を、transform とは別のプロパティとして書けます。

構文

none | [ <number> | <percentage> ]{1,3}

プレビュー

プリセット
右下の角をドラッグするとサイズを変えられます

コード

.box {
  background: linear-gradient(
    135deg,
    #88d1c7,
    #77a7d7,
    #eaac3a
  );
  border-radius: 8px 32px;
  scale: 1.5;
}

コントロール

scale
x: <number> | <percentage>
y: <number> | <percentage>

解説

値の書き方

横(x)、縦(y)の順に、倍率を数か % で書きます(scale: 1.5 1)。1(100%)でそのまま、2 で 2 倍、0.5 で半分です。初期値は none で、大きさを変えません。

  • 1 つだけ書くと、縦も同じ倍率になります。y を省くと 0 になる translate とは違います。
  • 負の値で反転します。scale: -1 1 は左右反転です。
  • 3 つ目に奥行き(z)の倍率も書けますが、平らな要素では、ほかの 3D の変形と組み合わせないと見た目は変わりません。このページのコントロールでは扱っていませんが、コードには書けます。

大きさを変える中心は transform-origin (初期値は要素の中央)です。このページのプレビューでは、点線の枠が元の大きさです。width などと違って、拡大・縮小しても周りの要素の配置は変わらず、はみ出した分は重なって描かれます。

transform との関係

translate・rotate・scale は transform とは別のプロパティなので、重ねて書くとどれも効きます。4 つを全部書くと、transform: translate() rotate() scale() … のように、この順に並べて transform の値の前に足したのと同じになります。ほかの変形はそのままにして、倍率だけをホバーで変えたり、アニメーションしたりするときに便利です。

Chrome・Edge(104 以降)、Firefox(72 以降)、Safari(14.1 以降)が対応しています。

コメント