CSS - transform-box
概要
属性名 | transform-box |
---|---|
値 | content-box | border-box | fill-box | stroke-box | view-box |
初期値 | view-box |
適用可能要素 | トランスフォーム要素 |
継承 | 継承しない |
サポート | https://caniuse.com/mdn-css_properties_transform-box |
説明
transform の対象とする領域を指定します。値の意味は box-sizing も参照してください。
- content-box
- コンテンツボックスを対象とします。
- border-box
- ボーダーボックスを対象とします。
- fill-box
- SVG の場合フィルボックスを対象とします。HTML の場合は
content-box
と同じになります。 - stroke-box
- SCG の場合ストロークボックスを対象とします。HTML の場合は
border-box
と同じになります。 - view-box
- 直近の SVG ビューポートを対象とします。SVG で使用します。HTML の場合は
border-box
と同じになります。
使用例
下記の例では、赤い四角の位置をベースに、右上(right top)を中心として青い四角を20度傾けています。content-box
の時はコンテンツボックス(ボーダーの内側)の右上を中心としますが、border-box
に変更するとボーダーボックス(ボーダーの外側)の右上が中心となります。
CSS
.my-example { position: relative; width: 300px; height: 150px; div { position: absolute; top: 30px; left: 100px; width: 50px; height: 50px; &.my-example-1 { border: 20px solid #fcc; } &.my-example-2 { border: 20px solid #ccf; transform-origin: right top; transform-box: content-box; transform: rotate(20deg); } } }
JavaScript
document.getElementById("sel").addEventListener("change", (e) => { document.querySelector(".my-example-2").style.transformBox = e.target.value; });
HTML
<div class="my-example"> <div class="my-example-1"></div> <div class="my-example-2"></div> </div> <select id="sel"> <option>content-box</option> <option>border-box</option> <option>fill-box</option> <option>stroke-box</option> <option>view-box</option> </select>
表示
リンク
- https://drafts.csswg.org/css-transforms/#transform-box
- https://developer.mozilla.org/ja/docs/Web/CSS/transform-box
- https://caniuse.com/mdn-css_properties_transform-box
Copyright (C) 2025 杜甫々
初版:2025年3月9日、最終更新:2025年3月9日
https://www.tohoho-web.com/css/prop/transform-box.htm