v4への移行
Bootstrap 4はプロジェクト全体のメジャーな書き直しです。最も注目すべき変更点を以下にまとめ、その後、関連するコンポーネントの具体的な変更点を説明します。
安定版の変更点
ベータ3から安定版のv4.xリリースに移行する際に、破壊的な変更はありませんが、いくつかの注目すべき変更があります。
印刷
-
壊れていた印刷ユーティリティを修正しました。以前は、
.d-print-*
クラスを使用すると、他の.d-*
クラスが予期せず上書きされていました。現在は、他の表示ユーティリティと一致し、そのメディア(@media print
)にのみ適用されます。 -
利用可能な印刷表示ユーティリティを他のユーティリティと一致するように拡張しました。ベータ3以前は、
block
、inline-block
、inline
、none
のみでした。安定版v4では、flex
、inline-flex
、table
、table-row
、table-cell
が追加されました。 -
@page
size
を指定する新しい印刷スタイルを使用して、ブラウザ全体の印刷プレビューレンダリングを修正しました。
ベータ3の変更点
ベータ2では、ベータフェーズ中に破壊的な変更の大部分が行われましたが、ベータ3リリースで対処する必要のあるものがまだいくつかありました。これらの変更は、ベータ2またはそれ以前のバージョンのBootstrapからベータ3に更新する場合に適用されます。
その他
- 未使用の
$thumbnail-transition
変数を削除しました。何もトランジションしていなかったので、単なる余分なコードでした。 - npmパッケージには、ソースファイルとdistファイル以外のファイルは含まれなくなりました。それらに依存していて、
node_modules
フォルダーからスクリプトを実行していた場合は、ワークフローを適応させる必要があります。
フォーム
-
カスタムとデフォルトの両方のチェックボックスとラジオボタンを書き直しました。現在は、どちらもHTML構造(兄弟の
<input>
と<label>
を持つ外部<div>
)とレイアウトスタイル(デフォルトではスタック、修飾子クラスではインライン)が一致しています。これにより、入力の状態に基づいてラベルのスタイルを設定できるようになり、disabled
属性のサポートが簡素化され(以前は親クラスが必要でした)、フォームの検証がより適切にサポートされるようになりました。これに伴い、カスタムフォームのチェックボックスとラジオボタンで複数の
background-image
を管理するためのCSSを変更しました。以前は、削除された.custom-control-indicator
要素に背景色、グラデーション、SVGアイコンがありました。背景グラデーションをカスタマイズするには、1つだけを変更する必要があるたびに、それらすべてを置き換える必要がありました。現在は、塗りつぶしとグラデーションに.custom-control-label::before
を使用し、アイコンに.custom-control-label::after
を使用しています。カスタムチェックをインラインにするには、
.custom-control-inline
を追加します。 -
入力ベースのボタングループのセレクターを更新しました。スタイルと動作に
[data-toggle="buttons"] { }
を使用する代わりに、JSの動作にのみdata
属性を使用し、スタイル設定には新しい.btn-group-toggle
クラスに依存します。 -
.col-form-legend
を削除し、わずかに改良された.col-form-label
を支持しました。これにより、.col-form-label-sm
と.col-form-label-lg
を<legend>
要素で簡単に使用できるようになりました。 -
カスタムファイル入力の
$custom-file-text
Sass変数が変更されました。ネストされたSassマップではなくなり、1つの文字列(`Browse`ボタン)のみを制御するようになりました。これは、Sassから生成される唯一の擬似要素になったためです。「ファイルを選択」テキストは、.custom-file-label
から取得されるようになりました。
入力グループ
-
入力グループアドオンは、入力に対する相対的な配置に固有のものになりました。
.input-group-addon
と.input-group-btn
を削除し、2つの新しいクラス、.input-group-prepend
と.input-group-append
を追加しました。CSSの多くを簡素化するために、明示的にappendまたはprependを使用する必要があります。appendまたはprepend内では、他の場所にあるのと同じようにボタンを配置しますが、テキストは.input-group-text
で囲みます. -
検証スタイルがサポートされるようになり、複数の入力がサポートされるようになりました(ただし、グループごとに1つの入力のみ検証できます)。
-
サイズ変更クラスは、個々のフォーム要素ではなく、親の
.input-group
に配置する必要があります。
ベータ2の変更点
ベータ版では、破壊的な変更がないように努めています。しかし、常に計画通りに進むとは限りません。ベータ1からベータ2に移行する際に注意すべき破壊的な変更点を以下に示します。
破壊的変更
$badge-color
変数と.badge
でのその使用を削除しました。色コントラスト関数を使用してbackground-color
に基づいてcolor
を選択するため、変数は不要です。- CSSネイティブの
grayscale
フィルターとの競合を回避するために、grayscale()
関数の名前をgray()
に変更しました。 - 他の場所で使用されているカラースキームに合わせて、
.table-inverse
、.thead-inverse
、.thead-default
の名前を.*-dark
と.*-light
に変更しました。 - レスポンシブテーブルは、各グリッドブレークポイントのクラスを生成するようになりました。これは、ベータ1で使用されていた
.table-responsive
が.table-responsive-md
に似ているという点で、ベータ1からの変更点です。必要に応じて、.table-responsive
または.table-responsive-{sm,md,lg,xl}
を使用できるようになりました。 - パッケージマネージャーが代替手段(Yarnやnpmなど)のために廃止されたため、Bowerのサポートを削除しました。詳細は、bower/bower#2298を参照してください。
- Bootstrapには依然としてjQuery 1.9.1以降が必要ですが、v3.xのサポート対象ブラウザはBootstrapのサポート対象ブラウザであり、v3.xにはいくつかのセキュリティ修正が含まれているため、バージョン3.xを使用することをお勧めします。
- 未使用の
.form-control-label
クラスを削除しました。このクラスを使用した場合、水平フォームレイアウトで関連付けられた入力を使用して<label>
を垂直方向に中央揃えした.col-form-label
クラスの複製でした。 color
プロパティを含むmixinであったcolor-yiq
を、値を返す関数に変更しました。これにより、任意のCSSプロパティに使用できるようになりました。たとえば、color-yiq(#000)
の代わりに、color: color-yiq(#000);
と記述します。
ハイライト
- モーダルでの新しい
pointer-events
の使用法を導入しました。外部の.modal-dialog
は、カスタムクリック処理のためにpointer-events: none
でイベントを渡し(.modal-backdrop
でクリックをリッスンできるようにします)、実際の.modal-content
でpointer-events: auto
を使用してそれを打ち消します。
概要
v3からv4に移行する際に注意すべき重要な項目を以下に示します。
ブラウザサポート
- IE8、IE9、iOS 6のサポートを削除しました。v4はIE10+とiOS 7+のみです。これらのいずれかが必要なサイトでは、v3を使用してください。
- Android v5.0 LollipopのブラウザとWebViewの公式サポートを追加しました。以前のバージョンのAndroidブラウザとWebViewは、非公式にのみサポートされています。
グローバルな変更
- **Flexboxがデフォルトで有効になっています。** 一般的に、これはフロートから離れて、コンポーネント全体でより多く使用されることを意味します。
- ソースCSSファイルのLessからSassに切り替えました。
- プライマリCSS単位として
px
からrem
に切り替えましたが、デバイスのビューポートは文字サイズの影響を受けないため、ピクセルはメディアクエリとグリッドの動作に使用されます。 - グローバルフォントサイズが
14px
から16px
に増加しました。 - グリッド層を改良して5番目のオプション(
576px
以下の小さなデバイスに対応)を追加し、それらのクラスから-xs
という接尾辞を削除しました。例:.col-6.col-sm-4.col-md-3
。 - 個別のオプションテーマを、SCSS変数(例:
$enable-gradients: true
)を介して構成可能なオプションに置き換えました。 - Gruntの代わりに一連のnpmスクリプトを使用するようにビルドシステムをオーバーホールしました。すべてのスクリプトについては
package.json
を、ローカル開発のニーズについてはプロジェクトのreadmeを参照してください。 - Bootstrapのレスポンシブでない使用はサポートされなくなりました。
- オンラインカスタマイザーを削除し、より広範なセットアップドキュメントとカスタマイズされたビルドを支持しました。
- 一般的なCSSプロパティと値のペア、およびマージン/パディングのスペースのショートカットのために、数十の新しいユーティリティクラスを追加しました。
グリッドシステム
- flexboxに移行しました。
- グリッドmixinと定義済みクラスにflexboxのサポートを追加しました。
- flexboxの一部として、垂直方向と水平方向の配置クラスのサポートを追加しました。
- グリッドクラス名を更新し、新しいグリッド層を追加しました。
- よりきめ細かい制御のために、
768px
未満の新しいsm
グリッド層を追加しました。現在、xs
、sm
、md
、lg
、xl
があります。これはまた、すべての層が1レベル上に上がっていることを意味します(v3の.col-md-6
はv4の.col-lg-6
になります)。 xs
グリッドクラスは、min-width: 0
でスタイルの適用を開始し、設定されたピクセル値ではないことをより正確に表すために、接尾辞を必要としないように変更されました。.col-xs-6
の代わりに、.col-6
になりました。他のすべてのグリッド層には接尾辞(例:sm
)が必要です。
- よりきめ細かい制御のために、
- グリッドサイズ、mixin、変数を更新しました。
- グリッドガターにSassマップが追加され、各ブレークポイントで特定のガター幅を指定できるようになりました。
- グリッドmixinを更新して、
make-col-ready
準備mixinと、個々の列のサイズ設定にflex
とmax-width
を設定するmake-col
を使用するようにしました。 - グリッドシステムのメディアクエリブレークポイントとコンテナ幅を変更して、新しいグリッド層を考慮し、列が最大幅で
12
で均等に分割できるようにしました。 - グリッドブレークポイントとコンテナ幅は、少数の個別の変数の代わりに、Sassマップ(
$grid-breakpoints
と$container-max-widths
)を介して処理されるようになりました。 これらは@screen-*
変数を完全に置き換え、グリッド層を完全にカスタマイズできるようにします。 - メディアクエリも変更されました。 毎回同じ値でメディアクエリの宣言を繰り返す代わりに、
@include media-breakpoint-up/down/only
が追加されました。 これにより、@media (min-width: @screen-sm-min) { ... }
と書く代わりに、@include media-breakpoint-up(sm) { ... }
と書くことができます。
コンポーネント
- パネル、サムネイル、ウェルは廃止され、新しい包括的なコンポーネントであるカードに置き換えられました。
- Glyphiconsアイコンフォントは廃止されました。 アイコンが必要な場合は、いくつかのオプションがあります
- Glyphiconsのアップストリームバージョン
- Octicons
- Font Awesome
- 代替案のリストについては、拡張ページを参照してください。追加の提案がある場合は、issueまたはPRを開いてください。
- Affix jQueryプラグインは廃止されました。
- 代わりに
position: sticky
を使用することをお勧めします。 詳細と具体的なポリフィル推奨事項については、HTML5 Pleaseエントリを参照してください。 1つの提案は、実装に@supports
ルールを使用することです(例:@supports (position: sticky) { ... }
) - Affixを使用して追加の非
position
スタイルを適用していた場合、ポリフィルはユースケースをサポートしていない可能性があります。このような用途の1つのオプションは、サードパーティのScrollPos-Stylerライブラリです。
- 代わりに
- ページャーコンポーネントは廃止されました。これは本質的にわずかにカスタマイズされたボタンだったためです。
- ほぼすべてのコンポーネントがリファクタリングされ、過度に具体的な子セレクタの代わりに、ネストされていないクラスセレクタをより多く使用するようになりました。
コンポーネント別
このリストは、v3.x.xとv4.0.0の間のコンポーネントごとの主要な変更点を強調しています。
Reboot
Bootstrap 4の新機能は、Rebootです。これは、Normalizeに基づいて構築された新しいスタイルシートで、独自のやや意見のあるリセットスタイルを備えています。このファイルに表示されるセレクタは要素のみを使用します。クラスはありません。これにより、リセットスタイルがコンポーネントスタイルから分離され、よりモジュール化されたアプローチが可能になります。これには、box-sizing: border-box
の変更、多くの要素でem
からrem
単位への移行、リンクスタイル、多くのフォーム要素のリセットなどが含まれます。
タイポグラフィ
- すべての
.text-
ユーティリティを_utilities.scss
ファイルに移動しました。 .page-header
は、そのスタイルをユーティリティで適用できるため、廃止されました。.dl-horizontal
は廃止されました。代わりに、<dl>
で.row
を使用し、その<dt>
と<dd>
の子にグリッド列クラス(またはmixin)を使用します。- blockquoteを再設計し、スタイルを
<blockquote>
要素から単一のクラス.blockquote
に移動しました。テキストユーティリティの.blockquote-reverse
修飾子は廃止されました。 .list-inline
では、子リストアイテムに新しい.list-inline-item
クラスが適用されている必要があります。
画像
.img-responsive
の名前を.img-fluid
に変更しました。.img-rounded
の名前を.rounded
に変更しました.img-circle
の名前を.rounded-circle
に変更しました
テーブル
>
セレクタのほぼすべてのインスタンスが削除されたため、ネストされたテーブルは親からスタイルを自動的に継承するようになりました。 これにより、セレクタと潜在的なカスタマイズが大幅に簡素化されます。- 一貫性のために、
.table-condensed
の名前を.table-sm
に変更しました。 - 新しい
.table-inverse
オプションを追加しました。 (v4.0.0で削除されました) - テーブルヘッダーの修飾子を追加しました:
.thead-default
と.thead-inverse
。 (v4.0.0で削除されました) - コンテキストクラスの名前を変更して、
.table-
プレフィックスを付けました。 したがって、.active
、.success
、.warning
、.danger
、.info
は、.table-active
、.table-success
、.table-warning
、.table-danger
、.table-info
になります。(v4.0.0で削除されました)
フォーム
- 要素のリセットを
_reboot.scss
ファイルに移動しました。 .control-label
の名前を.col-form-label
に変更しました。.input-lg
と.input-sm
の名前をそれぞれ.form-control-lg
と.form-control-sm
に変更しました。- 簡潔にするために、
.form-group-*
クラスを廃止しました。 代わりに.form-control-*
クラスを使用してください。 .help-block
を廃止し、ブロックレベルのヘルプテキスト用に.form-text
に置き換えました。 インラインヘルプテキストやその他の柔軟なオプションについては、.text-muted
などのユーティリティクラスを使用します。.radio-inline
と.checkbox-inline
を廃止しました。.checkbox
と.radio
を.form-check
とさまざまな.form-check-*
クラスに統合しました。- 水平フォームをオーバーホールしました
.form-horizontal
クラスの要件を廃止しました。.form-group
はmixinを介して.row
からスタイルを適用しなくなったため、水平グリッドレイアウトには.row
が必要になりました(例:<div class="form-group row">
)。.form-control
とラベルを垂直方向に中央揃えするための新しい.col-form-label
クラスを追加しました。- グリッドクラスを使用してコンパクトなフォームレイアウトを作成するための新しい
.form-row
を追加しました(.row
を.form-row
に交換するだけです)。
- カスタムフォームのサポートを追加しました(チェックボックス、ラジオボタン、選択、ファイル入力用)。
.has-error
、.has-warning
、.has-success
クラスを、CSSの:invalid
および:valid
疑似クラスを介したHTML5フォーム検証に置き換えました。.form-control-static
の名前を.form-control-plaintext
に変更しました。
ボタン
.btn-default
の名前を.btn-secondary
に変更しました。.btn-sm
はv3のものよりも比例してはるかに小さいので、.btn-xs
クラスを完全に廃止しました。button.js
jQuery プラグインのステートフルボタン機能は廃止されました。 これには、$().button(string)
および$().button('reset')
メソッドが含まれます。 代わりに、少量のカスタムJavaScriptを使用することをお勧めします。これにより、思いどおりの動作が得られます。- プラグインの他の機能(ボタンチェックボックス、ボタンラジオボタン、シングルトグルボタン)はv4に保持されていることに注意してください。
- IE9+ は
:disabled
をサポートしているため、ボタンの[disabled]
を:disabled
に変更しました。 ただし、ネイティブの無効化されたフィールドセットは IE11 ではまだバグがあるため、fieldset[disabled]
は依然として必要です。
ボタン グループ
- flexboxを使用してコンポーネントを書き直しました。
.btn-group-justified
を削除しました。 代わりに、.w-100
を持つ要素のラッパーとして<div class="btn-group d-flex" role="group"></div>
を使用できます。.btn-xs
の削除に伴い、.btn-group-xs
クラスを完全に廃止しました。- ボタントゥールバーのボタングループ間の明示的な間隔を削除しました。マージンユーティリティを代わりに使用してください。
- 他のコンポーネントと併用するためのドキュメントを改善しました。
ドロップダウン
- すべてのコンポーネント、モディファイアなどの親セレクタから単一のクラスに切り替えました。
- ドロップダウンメニューに上向きまたは下向きの矢印が付かないように、ドロップダウンスタイルを簡素化しました。
- ドロップダウンは、
<div>
または<ul>
で構築できるようになりました。 <a>
および<button>
ベースのドロップダウンアイテムを簡単に組み込みでサポートするために、ドロップダウンスタイルとマークアップを再構築しました。.divider
の名前を.dropdown-divider
に変更しました。- ドロップダウンアイテムには
.dropdown-item
が必要です。 - ドロップダウンを切り替えるには、明示的な
<span class="caret"></span>
は不要になりました。これは、.dropdown-toggle
のCSSの::after
を介して自動的に提供されるようになりました。
グリッドシステム
- 新しい
576px
グリッドブレークポイントをsm
として追加しました。つまり、合計5つの層(xs
、sm
、md
、lg
、xl
)になりました。 - レスポンシブグリッド修飾子クラスの名前を、よりシンプルなグリッドクラスにするために、
.col-{breakpoint}-{modifier}-{size}
から.{modifier}-{breakpoint}-{size}
に変更しました。 - 新しいflexboxを搭載した
order
クラスのプッシュおよびプル修飾子クラスを廃止しました。たとえば、.col-8.push-4
と.col-4.pull-8
の代わりに、.col-8.order-2
と.col-4.order-1
を使用します。 - グリッドシステムとコンポーネントにflexboxユーティリティクラスを追加しました。
リストグループ
- flexboxを使用してコンポーネントを書き直しました。
- リストグループアイテムのリンクバージョンとボタンバージョンのスタイルを設定するために、
a.list-group-item
を明示的なクラスである.list-group-item-action
に置き換えました。 - カードで使用する
.list-group-flush
クラスを追加しました。
モーダル
- flexboxを使用してコンポーネントを書き直しました。
- flexboxへの移行により、floatを使用しなくなったため、ヘッダー内のdismissアイコンの配置が壊れている可能性があります。floatされたコンテンツが最初に来ますが、flexboxではそうではありません。修正するには、モーダルタイトルの後にdismissアイコンが来るように更新してください。
remote
オプション(モーダルに外部コンテンツを自動的にロードして挿入するために使用できた)と、対応するloaded.bs.modal
イベントは削除されました。代わりに、クライアントサイドテンプレートまたはデータバインディングフレームワークを使用するか、jQuery.loadを自分で呼び出すことをお勧めします。
ナビゲーション
- flexboxを使用してコンポーネントを書き直しました。
- ネストされていないクラスを介したよりシンプルなスタイリングのために、ほぼすべての
>
セレクタを廃止しました。 .nav > li > a
のようなHTML固有のセレクタの代わりに、.nav
、.nav-item
、.nav-link
に個別のクラスを使用します。 これにより、HTMLがより柔軟になり、拡張性が向上します。
ナビゲーションバー
ナビゲーションバーは、配置、応答性、カスタマイズのサポートが向上したflexboxで完全に書き直されました。
- レスポンシブナビゲーションバーの動作は、必須の
.navbar-expand-{breakpoint}
を介して.navbar
クラスに適用されるようになりました。ここで、ナビゲーションバーを折りたたむ場所を選択します。以前は、これはLess変数の変更であり、再コンパイルが必要でした。 .navbar-default
は.navbar-light
になりましたが、.navbar-dark
は同じままです。 これらのいずれかが各ナビゲーションバーで必要です。ただし、これらのクラスはbackground-color
を設定しなくなりました。代わりに、本質的にcolor
にのみ影響します。- ナビゲーションバーには、何らかの背景宣言が必要です。背景ユーティリティ(
.bg-*
)から選択するか、マッドカスタマイズ用のライト/逆クラスで独自に設定します。 - flexboxスタイルが指定されているため、ナビゲーションバーはflexboxユーティリティを使用して簡単に配置オプションを使用できるようになりました。
.navbar-toggle
は.navbar-toggler
になり、スタイルと内部マークアップが異なります(3つの<span>
はもうありません)。.navbar-form
クラスを完全に廃止しました。それはもはや必要ありません。代わりに、.form-inline
を使用し、必要に応じてマージンユーティリティを適用します。- ナビゲーションバーには、デフォルトで
margin-bottom
またはborder-radius
が含まれなくなりました。必要に応じてユーティリティを使用してください。 - ナビゲーションバーをフィーチャーしたすべての例は、新しいマークアップを含むように更新されました。
ページネーション
- flexboxを使用してコンポーネントを書き直しました。
- 明示的なクラス(
.page-item
、.page-link
)が.pagination
の子孫に必要になりました .pager
コンポーネントは、カスタマイズされたアウトラインボタンにほとんど変わらないため、完全に廃止されました。
パンくずリスト
- 明示的なクラスである
.breadcrumb-item
が、.breadcrumb
の子孫に必要になりました
ラベルとバッジ
<label>
要素とのあいまいさを解消し、関連コンポーネントを簡素化するために、.label
と.badge
を統合しました。.label
は廃止され、.badge
になりました。- 丸みを帯びた「ピル」の外観の修飾子として
.badge-pill
を追加しました。 - バッジは、リストグループやその他のコンポーネントで自動的にフロートされなくなりました。フロートするには、ユーティリティクラスが必要になりました。
.badge-default
は廃止され、他のコンポーネントで使用されている修飾子クラスに合わせて.badge-secondary
が追加されました。
パネル、サムネイル、ウェル
新しいカードコンポーネントのために完全に廃止されました。
パネル
.panel
は.card
に変更され、flexbox を使用して構築されるようになりました。.panel-default
は削除され、代替はありません。.panel-group
は削除され、代替はありません。.card-group
は代替ではなく、異なるものです。.panel-heading
は.card-header
に変更されました。.panel-title
は.card-title
に変更されました。目的の外観によっては、見出し要素またはクラス(例:<h3>
、.h3
)または太字要素またはクラス(例:<strong>
、<b>
、.font-weight-bold
)を使用することもできます。.card-title
は、名前は似ていますが、.panel-title
とは異なる外観になります。.panel-body
は.card-body
に変更されました。.panel-footer
は.card-footer
に変更されました。.panel-primary
、.panel-success
、.panel-info
、.panel-warning
、.panel-danger
は、$theme-colors
Sass マップから生成された.bg-
、.text-
、.border
ユーティリティに置き換えられました。
プログレス
- コンテキストに応じた
.progress-bar-*
クラスは、.bg-*
ユーティリティに置き換えられました。たとえば、class="progress-bar progress-bar-danger"
はclass="progress-bar bg-danger"
になります。 - アニメーション化されたプログレスバーの
.active
は、.progress-bar-animated
に置き換えられました。
カルーセル
- デザインとスタイルを簡素化するために、コンポーネント全体をオーバーホールしました。オーバーライドするスタイルが少なくなり、新しいインジケーターと新しいアイコンが追加されました。
- すべての CSS のネストが解除され、名前が変更され、各クラスに
.carousel-
というプレフィックスが付きました。- カルーセルアイテムの場合、
.next
、.prev
、.left
、.right
は、.carousel-item-next
、.carousel-item-prev
、.carousel-item-left
、.carousel-item-right
に変更されました。 .item
も.carousel-item
に変更されました。- 前/次コントロールの場合、
.carousel-control.right
と.carousel-control.left
は.carousel-control-next
と.carousel-control-prev
に変更されたため、特定のベースクラスは不要になりました。
- カルーセルアイテムの場合、
- すべてのレスポンシブスタイルが削除され、ユーティリティ(例:特定のビューポートでのキャプションの表示)と必要に応じたカスタムスタイルに委ねられました。
- カルーセルアイテム内の画像の画像オーバーライドが削除され、ユーティリティに委ねられました。
- カルーセルの例が、新しいマークアップとスタイルを含むように調整されました。
テーブル
- スタイル付きのネストされたテーブルのサポートが削除されました。すべてのテーブルスタイルは、v4 ではよりシンプルなセレクタのために継承されるようになりました。
- 反転テーブルバリアントが追加されました。
ユーティリティ
- 表示、非表示など
- 表示ユーティリティがレスポンシブになりました(例:
.d-none
、d-{sm,md,lg,xl}-none
)。 - 新しい表示ユーティリティのために、
.hidden-*
ユーティリティの大部分が廃止されました。たとえば、.hidden-sm-up
の代わりに.d-sm-none
を使用します。.hidden-print
ユーティリティの名前が変更され、表示ユーティリティの命名規則を使用するようになりました。詳細は、このページのレスポンシブユーティリティセクションを参照してください。 - レスポンシブフロート用の
.float-{sm,md,lg,xl}-{left,right,none}
クラスが追加され、.pull-left
と.pull-right
は.float-left
と.float-right
と重複しているため削除されました。
- 表示ユーティリティがレスポンシブになりました(例:
- タイプ
- テキスト配置クラス
.text-{sm,md,lg,xl}-{left,center,right}
にレスポンシブバリエーションが追加されました。
- テキスト配置クラス
- 配置と間 spacing
- 新しいレスポンシブマージンとパディングユーティリティが、全辺、垂直方向と水平方向のショートハンドに追加されました。
- 膨大な量のflexbox ユーティリティが追加されました。
.center-block
は、新しい.mx-auto
クラスに置き換えられました。
- Clearfix が更新され、古いブラウザバージョンのサポートが廃止されました。
ベンダープレフィックスmixin
v3.2.0 で非推奨となった Bootstrap 3 のベンダープレフィックス mixin は、Bootstrap 4 で削除されました。Autoprefixerを使用しているため、不要になりました。
以下の mixin が削除されました:animation
、animation-delay
、animation-direction
、animation-duration
、animation-fill-mode
、animation-iteration-count
、animation-name
、animation-timing-function
、backface-visibility
、box-sizing
、content-columns
、hyphens
、opacity
、perspective
、perspective-origin
、rotate
、rotateX
、rotateY
、scale
、scaleX
、scaleY
、skew
、transform-origin
、transition-delay
、transition-duration
、transition-property
、transition-timing-function
、transition-transform
、translate
、translate3d
、user-select
ドキュメント
ドキュメントも全面的にアップグレードされました。以下はその概要です。
- まだ Jekyll を使用していますが、プラグインを組み合わせています。
bugify.rb
は、ブラウザのバグページのエントリを効率的にリストするために使用されます。example.rb
は、デフォルトのhighlight.rb
プラグインのカスタムフォークであり、サンプルコードの処理を容易にします。callout.rb
は、それと同様のカスタムフォークですが、特別なドキュメントのコールアウト用に設計されています。- jekyll-toc は、目次を生成するために使用されます。
- すべてのドキュメントコンテンツが、編集を容易にするために HTML から Markdown に書き直されました。
- よりシンプルなコンテンツと、より分かりやすい階層のために、ページが再編成されました。
- Bootstrap の変数、mixin などを最大限に活用するために、通常の CSS から SCSS に移行しました。
レスポンシブユーティリティ
すべての @screen-
変数は v4.0.0 で削除されました。代わりに media-breakpoint-up()
、media-breakpoint-down()
、または media-breakpoint-only()
Sass mixin、あるいは $grid-breakpoints
Sass マップを使用してください。
レスポンシブユーティリティクラスは、明示的な `display` ユーティリティを優先するために、大部分が削除されました。
.hidden
クラスと.show
クラスは、jQuery の$(...).hide()
メソッドと$(...).show()
メソッドと競合するため、削除されました。代わりに、[hidden]
属性を切り替えたり、style="display: none;"
やstyle="display: block;"
などのインラインスタイルを使用してください。- 名前が変更された印刷ユーティリティを除き、すべての
.hidden-
クラスが削除されました。- v3 から削除されました:
.hidden-xs
.hidden-sm
.hidden-md
.hidden-lg
.visible-xs-block
.visible-xs-inline
.visible-xs-inline-block
.visible-sm-block
.visible-sm-inline
.visible-sm-inline-block
.visible-md-block
.visible-md-inline
.visible-md-inline-block
.visible-lg-block
.visible-lg-inline
.visible-lg-inline-block
- v4 alpha から削除されました:
.hidden-xs-up
.hidden-xs-down
.hidden-sm-up
.hidden-sm-down
.hidden-md-up
.hidden-md-down
.hidden-lg-up
.hidden-lg-down
- v3 から削除されました:
- 印刷ユーティリティは、
.hidden-
または.visible-
で始まるのではなく、.d-print-
で始まるようになりました。- 古い名前:
.visible-print-block
、.visible-print-inline
、.visible-print-inline-block
、.hidden-print
- 新しいクラス:
.d-print-block
、.d-print-inline
、.d-print-inline-block
、.d-print-none
- 古い名前:
明示的な .visible-*
クラスを使用するのではなく、その画面サイズで要素を非表示にしないことによって、要素を表示します。1 つの .d-*-none
クラスと 1 つの .d-*-block
クラスを組み合わせて、特定の画面サイズの間隔でのみ要素を表示できます(例:.d-none.d-md-block.d-xl-none
は、中型および大型デバイスでのみ要素を表示します)。
v4 でのグリッドブレークポイントの変更により、同じ結果を得るには 1 つ大きいブレークポイントに移動する必要があることに注意してください。新しいレスポンシブユーティリティクラスは、要素の表示状態がビューポートサイズの単一の連続した範囲として表現できない、あまり一般的ではないケースに対応しようとはしていません。そのような場合は、カスタム CSS を使用する必要があります。