inset-inline
inset-inline は、位置を決めた要素(position が static 以外)を、文字が並ぶ向き(インライン方向)の始まりと終わりからどれだけ離すかをまとめて指定します。横書きでは left と right にあたります。
構文
<'top'>{1,2}プレビュー
1234
プリセット
見本
右下の角をドラッグするとサイズを変えられます
コード
.box {
display: flex;
position: relative;
}
.box > :nth-child(2) {
position: absolute;
inset-inline: auto 16px;
}コントロール
inset-inline
両側を同じ値にする
inset-inline-startauto
inset-inline-end16px
1234
解説
値の書き方
- 値を 1 つ書くと両側に、2 つ書くと始まり(inset-inline-start)と終わり(inset-inline-end)の順に効きます。
- 値は inset と同じで、長さ・
%・autoと負の値です。% は基準の箱の、その向きの大きさ(横書きなら幅)に対する割合です。初期値はautoです。 - 片方だけ決めるとその端からの距離で置き、両方決めると、幅が
autoならその間いっぱいに広がります。このページの項目は幅が決まっているので、両方決めると始まりの値が勝ちます。
このページのプレビューは、補助の宣言で箱を position: relativeにして、2 番目の項目に position: absolute と inset-inline を書いています。左から右への横書きなので、始まりが左、終わりが右です。
向きで変わること
direction: rtlで右から左に書く言語では、始まりが右、終わりが左になります。writing-mode: vertical-rlなどの縦書きでは、始まりが上、終わりが下になります。- どの辺になるかは、基準の箱ではなく、その要素自身の writing-mode と direction で決まります。
よく使う場面
閉じるボタンや吹き出しの印を inset-inline-end: 8px のように置くと、右から左に書く言語では自動で左側に移ります。
気をつけること
positionがstaticの要素には効きません。- 横書きでは left・right と同じ辺を指します。同じ要素に両方書くと、後に書いたほうが効きます。
- 主要なブラウザすべてで使えます。