Bootstrap 5.3.8のユーティリティクラス、グリッド、Flexboxなどの備忘録。
基本はモバイルファースト。指定したブレイクポイント以上でスタイルを適用。
Breakpoints
ブレイクポイント
xs:576px未満
sm:576px以上
md:768px以上
lg:992px以上
xl:1200px以上
xxl:1400px以上
xsは接頭辞なし。sm以上はsm、md、lg、xl、xxlを指定。
レスポンシブ指定
<div class="col-12 col-md-6 col-lg-4">コンテンツ</div>
スマホは全幅、768px以上で2列、992px以上で3列に対応するカラム幅。
Text
text-align
text-start:開始側text-center:中央揃えtext-end:終了側LTR環境ではstartが左、endが右。
レスポンシブ指定
<p class="text-center text-md-start">テキスト</p>
スマホは中央揃え、768px以上で開始側に配置。
テキストの省略
text-truncate
これはダミーです。これはダミーです。
幅を指定し、はみ出したテキストを省略記号で表示。
<p class="d-inline-block text-truncate" style="max-width:150px;">長いテキスト</p>
カラーの継承
text-reset:親要素の文字色を継承。
フォントサイズ
fs-1:2.5remfs-2:2remfs-3:1.75remfs-4:1.5remfs-5:1.25remfs-6:1remBootstrap標準設定での値。
フォントの太さ・スタイル
fw-bold:太字fw-semibold:やや太字fw-normal:通常fw-light:細字fst-italic:斜体fst-normal:通常スタイル文字色
text-primarytext-secondarytext-successtext-dangertext-warningtext-infotext-bodytext-body-secondarytext-body-tertiarytext-mutedはBootstrap 5.3で非推奨。代わりにtext-body-secondaryなどを使用。
Spacing
margin・padding
m-0 / p-0:0m-1 / p-1:0.25remm-2 / p-2:0.5remm-3 / p-3:1remm-4 / p-4:1.5remm-5 / p-5:3rem方向の指定
mt-3:上marginmb-3:下marginms-3:開始側marginme-3:終了側marginmx-3:左右marginmy-3:上下marginpt-3:上paddingpb-3:下paddingps-3:開始側paddingpe-3:終了側paddingpx-3:左右paddingpy-3:上下paddingauto
mx-auto:左右automs-auto:開始側autome-auto:終了側autoレスポンシブ指定
<div class="mt-3 mt-lg-5 px-3 px-lg-4">コンテンツ</div>
992px以上で余白の大きさを変更。
Grid
基本の12カラム
Bootstrapのグリッドは12カラム構成。
<div class="container">
<div class="row">
<div class="col-12 col-md-6">左カラム</div>
<div class="col-12 col-md-6">右カラム</div>
</div>
</div>767px以下は縦並び、768px以上は2カラム。
Container
container:画面幅に応じた最大幅container-fluid:常に幅100%container-md:768px以上で最大幅を設定container-lg:992px以上で最大幅を設定Row Columns
親要素に列数を指定。
<div class="row row-cols-2 row-cols-md-3 row-cols-lg-4">
<div class="col">項目1</div>
<div class="col">項目2</div>
<div class="col">項目3</div>
<div class="col">項目4</div>
</div>スマホ2列、768px以上で3列、992px以上で4列。
Gutter / カラム間の余白
g-0:余白なしg-1~g-5:縦横の余白gx-3:横方向の余白gy-3:縦方向の余白g-md-4:768px以上で変更<div class="row g-3">
<div class="col-6">項目1</div>
<div class="col-6">項目2</div>
</div>Flex
Flexコンテナ
d-flex:Flexboxd-inline-flex:インラインFlexboxd-md-flex:768px以上でFlexbox並び方
flex-row:横並びflex-row-reverse:横並び・逆順flex-column:縦並びflex-column-reverse:縦並び・逆順折り返し
flex-wrap:折り返しありflex-nowrap:折り返しなしflex-wrap-reverse:逆方向に折り返し主軸方向の整列
justify-content-start:開始側justify-content-center:中央justify-content-end:終了側justify-content-between:両端揃えjustify-content-around:各要素の周囲に均等な余白justify-content-evenly:要素間と両端の余白を均等にするflex-rowでは横方向、flex-columnでは縦方向に適用。
交差軸方向の整列
align-items-start:開始側align-items-center:中央align-items-end:終了側align-items-baseline:ベースラインalign-items-stretch:引き伸ばしflex-rowでは縦方向、flex-columnでは横方向に適用。
アイテムごとの整列
上揃え:align-self-start
項目1
上
項目3
中央揃え:align-self-center
項目1
中央
項目3
下揃え:align-self-end
項目1
下
項目3
ベースライン:align-self-baseline
項目1
基準線
項目3
ストレッチ:align-self-stretch
項目1
伸縮
項目3
Gap / Flexアイテム間の余白
gap-0:余白なしgap-1~gap-5:縦横の余白row-gap-3:行方向の余白column-gap-3:列方向の余白gap-md-4:768px以上で変更<div class="d-flex flex-wrap gap-3">
<div>項目1</div>
<div>項目2</div>
<div>項目3</div>
</div>並び順
order-first:最初order-0~order-5:順序指定order-last:最後order-md-1:768px以上で変更伸縮
flex-fill:幅を埋めるflex-grow-1:伸長flex-grow-0:伸長しないflex-shrink-1:縮小を許可flex-shrink-0:縮小しないDisplay
表示・非表示
d-none:非表示d-inline:inlined-inline-block:inline-blockd-block:blockd-grid:gridd-flex:flexd-inline-flex:inline-flexレスポンシブ表示
<div class="d-none d-md-block">768px以上で表示</div> <div class="d-block d-md-none">767px以下で表示</div>
印刷時の表示切り替え
d-print-none:印刷時に非表示d-print-block:印刷時にblockd-print-inline:印刷時にinlined-print-inline-block:印刷時にinline-block<div class="d-none d-print-block">印刷時のみ表示</div> <div class="d-print-none">印刷時は非表示</div>
Offset
6カラムを中央寄せ
col-6 offset-3
<div class="row">
<div class="col-6 offset-3">中央寄せ</div>
</div>右側に4カラム分の空間
col-4
offset-4
<div class="row">
<div class="col-4">左</div>
<div class="col-4 offset-4">右</div>
</div>レスポンシブオフセット
<div class="row">
<div class="col-12 col-md-6 offset-md-3">コンテンツ</div>
</div>767px以下は全幅、768px以上は中央に6カラム。
Image
画像関連クラス
img-fluid:レスポンシブ画像img-thumbnail:サムネイル風の枠線rounded:角丸rounded-circle:円形float-start:開始側に回り込みfloat-end:終了側に回り込み<img src="image.jpg" class="img-fluid rounded" alt="サンプル画像">
Object Fit
object-fit-contain:全体を収めるobject-fit-cover:領域いっぱいに表示object-fit-fill:領域に合わせて変形object-fit-none:サイズ調整なしobject-fit-scale:scale-down<img src="image.jpg" class="w-100 object-fit-cover" style="height:200px;" alt="サンプル画像">
Border
枠線
border:全方向border-0:枠線なしborder-top:上border-bottom:下border-start:開始側border-end:終了側線の太さ・色
border-1~border-5:太さborder-primary:primary色border-secondary:secondary色border-danger:danger色角丸
rounded-0:角丸なしrounded-1~rounded-5:角丸の大きさrounded-circle:円形rounded-pill:カプセル型Position
位置指定
position-staticposition-relativeposition-absoluteposition-fixedposition-sticky配置
top-0:上端bottom-0:下端start-0:開始側end-0:終了側top-50:上から50%start-50:開始側から50%translate-middle:中央補正<div class="position-relative" style="height:150px;">
<div class="position-absolute top-50 start-50 translate-middle">
中央配置
</div>
</div>Size
幅・高さ
w-25:幅25%w-50:幅50%w-75:幅75%w-100:幅100%w-auto:幅autoh-25:高さ25%h-50:高さ50%h-75:高さ75%h-100:高さ100%h-auto:高さautomw-100:最大幅100%mh-100:最大高さ100%min-vh-100:最小高さ100vhvh-100:高さ100vhvw-100:幅100vwList / Clearfix
リストスタイル
list-unstyled:マーカーなしlist-inline:横並びリストの親要素list-inline-item:横並びの各項目<ul class="list-inline">
<li class="list-inline-item">項目1</li>
<li class="list-inline-item">項目2</li>
<li class="list-inline-item">項目3</li>
</ul>clearfix
clearfix:floatした子要素の回り込みを解除。
<div class="clearfix">
<div class="float-start">左</div>
<div class="float-end">右</div>
</div>通常のレイアウトにはFlexboxやGridの使用を優先。
Bootstrap 4からの変更点
text-left → text-starttext-right → text-endml-* → ms-*mr-* → me-*pl-* → ps-*pr-* → pe-*font-weight-bold → fw-boldfont-italic → fst-italicno-gutters → g-0float-left → float-startfloat-right → float-end