【Tailwind和訳】BORDERS/Divide Width
この記事について
この記事は、BORDERS/Divide Width の記事を和訳したものです。
記事内で使用する画像は、公式ドキュメント内の画像を引用して使用させていただいております。
Divide Width
要素間の境界線の幅を制御するためのユーティリティ。
クラス | プロパティ |
---|---|
divide-x-0 > * + * |
--tw-divide-x-reverse: 0; border-right-width: calc(0px * var(--tw-divide-x-reverse)); border-left-width: calc(0px * calc(1 - var(--tw-divide-x-reverse)));
|
divide-x-2 > * + * |
--tw-divide-x-reverse: 0; border-right-width: calc(2px * var(--tw-divide-x-reverse)); border-left-width: calc(2px * calc(1 - var(--tw-divide-x-reverse)));
|
divide-x-4 > * + * |
--tw-divide-x-reverse: 0; border-right-width: calc(4px * var(--tw-divide-x-reverse)); border-left-width: calc(4px * calc(1 - var(--tw-divide-x-reverse)));
|
divide-x-8 > * + * |
--tw-divide-x-reverse: 0; border-right-width: calc(8px * var(--tw-divide-x-reverse)); border-left-width: calc(8px * calc(1 - var(--tw-divide-x-reverse)));
|
divide-x > * + * |
--tw-divide-x-reverse: 0; border-right-width: calc(1px * var(--tw-divide-x-reverse)); border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse)));
|
divide-y-0 > * + * |
--tw-divide-y-reverse: 0; border-top-width: calc(0px * calc(1 - var(--tw-divide-y-reverse))); border-bottom-width: calc(0px * var(--tw-divide-y-reverse));
|
divide-y-2 > * + * |
--tw-divide-y-reverse: 0; border-top-width: calc(2px * calc(1 - var(--tw-divide-y-reverse))); border-bottom-width: calc(2px * var(--tw-divide-y-reverse));
|
divide-y-4 > * + * |
--tw-divide-y-reverse: 0; border-top-width: calc(4px * calc(1 - var(--tw-divide-y-reverse))); border-bottom-width: calc(4px * var(--tw-divide-y-reverse));
|
divide-y-8 > * + * |
--tw-divide-y-reverse: 0; border-top-width: calc(8px * calc(1 - var(--tw-divide-y-reverse))); border-bottom-width: calc(8px * var(--tw-divide-y-reverse));
|
divide-y > * + * |
--tw-divide-y-reverse: 0; border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse))); border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
|
divide-y-reverse > * + * |
--tw-divide-y-reverse: 1; |
divide-x-reverse > * + * |
--tw-divide-x-reverse: 1; |
水平方向の子要素の間に境界線を追加する
divide-x-{amount}
ユーティリティーを使って、水平方向の要素の間にボーダーを追加します。
<div class="grid grid-cols-3 divide-x divide-green-500">
<div>1</div>
<div>2</div>
<div>3</div>
</div>
スタックされた子要素の間に境界線を追加する
divide-y-{amount}
ユーティリティーを使って、積み重ねられた要素の間にボーダーを追加します。
<div class="grid grid-cols-1 divide-y divide-yellow-500">
<div>1</div>
<div>2</div>
<div>3</div>
</div>
子要素の順序を逆にする
flex-row-reverse
や flex-col-reverse
のように要素の順序が逆の場合は、divide-x-reverse
や divide-y-reverse
ユーティリティを使用して、各要素の正しい面にボーダーが追加されるようにします。
<div class="flex flex-col-reverse divide-y divide-y-reverse divide-rose-400">
<div>1</div>
<div>2</div>
<div>3</div>
</div>
レスポンシブ
特定のブレークポイントで要素間の境界を制御するには、既存の divide ユーティリティーに {screen}:
というプレフィックスを追加します。例えば、md:divide-y-8
というクラスを要素に追加すると、divide-y-8
ユーティリティが中程度のスクリーンサイズ以上で適用されます。
<div class="divide-y divide-gray-400 md:divide-y-8">
<div class="py-2">1</div>
<div class="py-2">2</div>
<div class="py-2">3</div>
</div>
Tailwind のレスポンシブデザイン機能の詳細については、レスポンシブデザインのドキュメントをご覧ください。
カスタマイズ
分割幅のスケール
divide width scale は、デフォルトでは borderWidth
スケールから値を継承しています。従って、border width と divide width の両方の値を一緒にカスタマイズしたい場合は、tailwind.config.js
ファイルの theme.borderWidth
セクションを使用してください。
module.exports = {
theme: {
borderWidth: {
DEFAULT: '1px',
'0': '0',
'2': '2px',
+ '3': '3px',
'4': '4px',
+ '6': '6px',
- '8': '8px',
}
}
}
分割幅の値だけをカスタマイズするには、tailwind.config.js
ファイルの theme.divideWidth
セクションを使用します。
module.exports = {
theme: {
divideWidth: {
DEFAULT: '1px',
'0': '0',
'2': '2px',
+ '3': '3px',
'4': '4px',
+ '6': '6px',
- '8': '8px',
}
}
}
デフォルトのテーマのカスタマイズについては、テーマのカスタマイズに関するドキュメントをご覧ください。
バリアント
デフォルトでは、幅を分割するユーティリティのために、レスポンシブバリアントのみが生成されます。
tailwind.config.js
ファイルの variants
セクションにある divideWidth
プロパティを変更することで、幅を分割するユーティリティのために生成されるバリアントを制御することができます。
例えば、この設定ではホバーとフォーカスのバリアントも生成されます。
module.exports = {
variants: {
extend: {
// ...
+ divideWidth: ['hover', 'focus'],
}
}
}
無効化
divideWidth ユーティリティーを使用しない場合は、設定ファイルの corePlugins
セクションで divideWidth
プロパティを false
に設定することで、ユーティリティーを完全に無効にすることができます。
module.exports = {
corePlugins: {
// ...
+ divideWidth: false,
}
}
Discussion