twitter-bootstrap
ブートストラップ4への移行
サーチ…
前書き
ブートストラップ4は大きな書き換えであり、ブートストラップ3からアップグレードする際には、多くの変更点があります。ブートストラップ3.xコードをブートストラップ4.xに移行する際のクラス名の変更点、ヒント、例を以下に示します。
備考
これはちょっとした例で、より詳細な例を追っています。
ブートストラップ4におけるグリッドシステムの列レイアウト変更
最初のコードブロックはブートストラップ3に書き込まれます。ブートストラップ3には4種類のカラム指定、つまりcol-md-* col-lg-* col-sm-* col-xs-*
ます。完全に反応するレイアウトは、ブートストラップ3では次のようになります。
<div class="row">
<div class="col-lg-4 col-md-8 col-sm-8 col-xs-8">
contents
</div>
<div class="col-lg-4 col-md-4 col-sm-4 col-xs-4">
contents
</div>
</div>
Bootstrap 4では、768pxより新しいsmグリッド層が追加され、細かい制御が可能です。したがって、ブートストラップ4はcol-* (xs), col-sm-*, col-md-*, col-lg-*, and col-xl-*
。だから、以前はv3の.col-md-6
だったのがv4の.col-lg-6
です。余分な小さな(デフォルト)ブレークポイントでは、 .col-6
が6列単位を表すように、 -xs
infixが削除されていることに注意して-xs
。
ブートストラップ4に同じ例を書いたければ、次のようになります:
<div class="row">
<div class="col-xl-8 col-lg-8 col-md-8 col-sm-8 col-8">
contents
</div>
<div class="col-xl-8 col-lg-8 col-md-4 col-sm-4 col-4">
contents
</div>
</div>
グリッドレイアウトブートストラップ4
ブラウザサポートの変更
twitter-bootstrap 4では、 IE8, IE9, and iOS 6
のサポートが廃止されました。 v4は現在IE10+ and iOS 7+
のみIE10+ and iOS 7+
。どちらかを必要とするサイトでは、v3を使用します。
twitter-bootstrap 4では、 Android v5.0 Lollipop's Browser and WebView
公式サポートが追加されました。以前のバージョンのAndroidブラウザとWebViewはunofficially supported
しかunofficially supported
ていません。
アフィックスクラスの削除
接尾語はブートストラップ4から削除されます。
position: sticky
を使用することをお勧めします。
Affixを使用して追加の非位置スタイルを適用していた場合、ポリフィルはユースケースをサポートしていない可能性があります。そのような用途の1つのオプションは、サードパーティのScrollPos-Stylerライブラリです。
AffixのjQueryプラグインを削除しました。ポジションを使用することをお勧めします。詳細および特定のポリフィルの推奨事項については、HTML5 Pleaseエントリを参照してください。
Affixを使用して追加の非位置スタイルを適用していた場合、ポリフィルはユースケースをサポートしていない可能性があります。そのような用途の1つのオプションは、サードパーティのScrollPos-Stylerライブラリです。
誰かがBootstrap v3
からBootstrap v4
移行している場合、フォールバックアプローチが以下に示されています。
HTML
<header>
</header>
<nav class="navbar navbar-light bg-faded" data-toggle="affix">
<button class="navbar-toggler hidden-sm-up pull-xs-right" type="button" data-toggle="collapse" data-target="#collapsingNavbar">
☰
</button>
<a class="navbar-brand" href="#">Brand</a>
<div class="collapse navbar-toggleable-xs" id="collapsingNavbar">
<ul class="nav navbar-nav pull-xs-right">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
Menu
</a>
<div class="dropdown-menu" aria-labelledby="Preview">
<a class="dropdown-item" href="">Logout</a>
</div>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item ">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item ">
<a class="nav-link" href="#">Link</a>
</li>
</ul>
</div>
</nav>
<div class="container" id="main">
<h2>Hello Bootstrap 4.</h2>
<div class="row">
<div class="col-xs-12 col-sm-6 col-md-9">
<p>3 wolf moon retro jean shorts chambray sustainable roof party. Shoreditch vegan artisan Helvetica. Tattooed Codeply Echo Park Godard kogi, next level irony ennui twee squid fap selvage. Meggings flannel Brooklyn literally small batch, mumblecore
PBR try-hard kale chips. Brooklyn vinyl lumbersexual bicycle rights, viral fap cronut leggings squid chillwave pickled gentrify mustache. 3 wolf moon hashtag church-key Odd Future. Austin messenger bag normcore, Helvetica Williamsburg
sartorial tote bag distillery Portland before they sold out gastropub taxidermy Vice.</p>
</div>
<div class="col-xs-6 col-md-3">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis pharetra codeply varius quam sit amet vulputate. Quisque mauris augue, molestie tincidunt codeply condimentum vitae, gravida a libero. Aenean sit amet felis dolor, in sagittis nisi.
Sed ac orci quis tortor imperdiet venenatis. Duis elementum auctor accumsan. Aliquam in felis sit amet augue.
</p>
<hr>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis pharetra codeply varius quam sit amet vulputate. Quisque mauris augue, molestie tincidunt codeply condimentum vitae, gravida a libero. Aenean sit amet felis dolor, in sagittis nisi.
Sed ac orci quis tortor imperdiet venenatis. Duis elementum auctor accumsan. Aliquam in felis sit amet augue.
</p>
</div>
</div>
<div class="row">
<div class="col-xs-6 col-sm-4">
<div class="card card-outline-primary">
<div class="card-block">
<h3 class="card-title">Card</h3>
<p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
<a href="#" class="btn btn-outline-secondary">Outline</a>
</div>
</div>
</div>
<div class="col-xs-6 col-sm-4">
<div class="card card-outline-primary">
<div class="card-block">
<h3 class="card-title">Card</h3>
<p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
<a href="#" class="btn btn-outline-secondary">Outline</a>
</div>
</div>
</div>
<div class="col-xs-6 col-sm-4">
<div class="card card-outline-primary">
<div class="card-block">
<h3 class="card-title">Card</h3>
<p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
<a href="#" class="btn btn-outline-secondary">Outline</a>
</div>
</div>
</div>
</div>
</div>
CSS
header {
height: 220px;
background: #ccc;
}
JAVASCRIPT
$(document).ready(function() {
var toggleAffix = function(affixElement, scrollElement, wrapper) {
var height = affixElement.outerHeight(),
top = wrapper.offset().top;
if (scrollElement.scrollTop() >= top){
wrapper.height(height);
affixElement.addClass("affix");
}
else {
affixElement.removeClass("affix");
wrapper.height('auto');
}
};
$('[data-toggle="affix"]').each(function() {
var ele = $(this),
wrapper = $('<div></div>');
ele.before(wrapper);
$(window).on('scroll resize', function() {
toggleAffix(ele, $(this), wrapper);
});
// init
toggleAffix(ele, $(window), wrapper);
});
});
ブートストラップ4 Navbar
新しいBootstrap 4 Navbar Componentは、Bootstrap 3.xの前身よりも改良されました。ブートストラップ4では、ナビゲーションバーはデフォルトで応答し、ナビゲーションバーのコンテンツのアライメントがはるかに簡単にするためにフレキシボックスを利用しています。新しいnavbar-toggleable-*
クラスを使用してNavbarブレークポイントを変更することも簡単です。 Navbarには6つのブレークポイントサイズまたは「状態」があり、次のNavbarオプションのいずれかを簡単に持つことができます。
- Navbarは垂直方向のモバイルビューに折り畳まれることはなく 、常に水平です。
- Navbarは常に垂直ビューに折りたたまれ、ハンバーガーで切り替えられます。
- Navbar は、4つの応答ブレークポイントの1つで垂直ビューに折り畳まれます 。
基本的なブートストラップ4 Navbar
<nav class="navbar navbar-toggleable-md">
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbar1">
<span class="navbar-toggler-icon"></span>
</button>
<a class="navbar-brand" href="#">Navbar</a>
<div class="collapse navbar-collapse" id="navbar1">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
</ul>
</div>
</nav>
上記のコードからわかるように、 navbar-header
クラスはBootstrap 4から削除されており、フル幅のNavbarではcontainer-fluid
は不要です。
Navbarブレークポイントの変更
navbar-toggleable-md
クラスは、992pxの中間(md)ブレークポイントで、上記のNavbarを垂直方向に折りたたんで(そしてトグルアイコンを表示します)作成します。これを別のブレークポイントに変更するには、 navbar-toggleable-md
をこれらのいずれかと交換するだけです。
- navbar-toggleable =
xs
幅の折りたたみ<576px - navbar-toggleable-sm =
sm
幅での折りたたみ<768px - navbar-toggleable-lg =
lg
幅での折りたたみ<1200px
Navbar Alignmentの変更
Flexboxにより、Navbarとそのコンテンツ(ブランド、リンク、フォームまたはテキスト)の配置を簡単に変更することができます。デフォルトのNavbarコンテンツは左揃えになります。もちろん、他の多くのアライメントシナリオがあります...
- ブランド左(デフォルト)、リンクセンター&右
- ブランドセンター、リンクの左右
- 左のブランドと右のリンク
- ブランド、リンク、入力幅の入力フォーム
- ブランドなし、リンクセンター&右
- 左のブランド、コンテナ内のリンク
- 調整済みリンク(幅を埋める)を中心に
ブートストラップ4 Navbar with Centered Brand、左/右リンク
<nav class="navbar navbar-toggleable-sm navbar-inverse bg-primary">
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target=".dual-collapse">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse dual-collapse">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#features">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
</ul>
</div>
<a class="navbar-brand d-flex mx-auto" href="#">Navbar 2</a>
<div class="navbar-collapse collapse dual-collapse">
<ul class="navbar-nav ml-auto">
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
</ul>
</div>
</nav>
ブーツストラップ4 Navbar(ブランド左、リンクセンター、右)
<nav class="navbar navbar-light navbar-toggleable-sm bg-faded justify-content-center">
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#collapsingNavbar3">
<span class="navbar-toggler-icon"></span>
</button>
<a href="/" class="navbar-brand d-flex w-50 mr-auto">Brand</a>
<div class="navbar-collapse collapse" id="collapsingNavbar3">
<ul class="navbar-nav mx-auto w-100 justify-content-center">
<li class="nav-item active">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
</ul>
<ul class="nav navbar-nav ml-auto w-100 justify-content-end">
<li class="nav-item">
<a class="nav-link" href="#">Right</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Right</a>
</li>
</ul>
</div>
</nav>
Navbar Alignmentデモ: http : //www.codeply.com/go/qhaBrcWp3v
Bootstrap 4 Navbarの詳細
ブートストラップ3からブートストラップ4へのCSS変更
ブートストラップ4は大きな書き換えであるため、多くのブートストラップ3.xクラス名が変更されたり削除されたりしています。 Navbarなどのコンポーネントの再構成、新しいCSSクラスとFlexboxサポートの導入により、4.xへのアップグレードは3.xからの簡単な変換プロセスではありません 。
しかし、特定のブートストラップ4の交換を持つBootstrap 3.x CSSクラスがいくつかあります。
CSSクラス名/セレクタがBootstrap 3.3.7から4(alpha 6)に変更されました
{t} - 層またはブレークポイントを表します(例:sm、md、lgなど)。
xs
ティアがデフォルトであり、 col-3
、 col-6
など指定する必要はありません。
{u} - col単位のサイズを表します(例:1〜12)
ブートストラップ3.x | ブートストラップ4 |
---|---|
.col- {t} - {u} | .col- {t} - {u}( leave {t} blank for xs ) |
.col- {t} -offset- {u} | .offset- {t} - {u}( leave {t} blank for xs ) |
.col- {t} -push- {u} | .push- {t} - {u}( leave {t} blank for xs ) |
.col- {t} -pull- {u} | .pull- {t} - {u}( leave {t} blank for xs ) |
。パネル | 。カード |
.panel-heading | .card-header |
.panel-title | .card-title |
.panel-body | カードブロック |
.panel-footer | .card-footer |
.panel-primary | .card-primary.card-inverse |
.panel-success | .card-success.card-inverse |
.panel-info | .card-info.card-inverse |
.panel-warning | .card-warning.card-inverse |
.panel-danger | .card-danger.card-inverse |
.well | .card.card-block |
.thumbnail | .card.card-block |
.list-inline> li | .list-inline-item |
.dropdown-menu> li | .dropdown-item |
.nav navbar> li | .nav-item |
.nav navbar> li> a | .nav-link |
.navbar-right | .ml-auto |
.navbar-btn | .nav-item |
.navbar-fixed-top | .fixed-top |
.nav-stacked | .flex-column |
.btn-default | .btn-セカンダリ |
.img-responsive | イム - 流体 |
.img-circle | 丸みを帯びた丸 |
.img-rounded | .rounded |
.form-horizontal | (除去された) |
。無線 | .form-check |
.checkbox | .form-check |
.input-lg | .form-control-lg |
.input-sm | .form-control-sm |
.control-label | .form-control-label |
.table-condensed | .table-sm |
.pagination> li | .page-item |
.pagination> li> a | .page-link |
。項目 | 。カルーセルアイテム |
.text-help | .form-control-feedback |
。右折 | 。フロート右 |
.pull-left | 。フロート左 |
.center-block | .mx-auto |
.collapse.in | .collapse.show |
.hidden-sm | .hidden-md-down |
.hidden-md | .hidden-lg-down |
.hidden-xs | .hidden-xs-down |
.visible-xs | .hidden-sm-up |
.visible-sm | .hidden-xs-down.hidden-md-up |
.visible-md | .hidden-sm-down.hidden-lg-up |
.visible-lg | .hidden-md-down.hidden-xl-up |
。ラベル | 。バッジ |
。バッジ | .badge.badge-pill |
また参照してください:
ブートストラップ3.xから4への移行ツール
ブートストラップ4の新機能
ブートストラップ4垂直整列
中央または下整合するようになっ要素が縦に常にCSSやブートストラップで課題となっています。所望の垂直方向の整列は、親コンテナ内にあってもよいし、隣接する要素に対してであってもよい。
:今、ブートストラップ4は、デフォルトではフレキシボックスであることを利用した垂直配向には多くの異なるアプローチがある自動マージン 、 フレキシボックスユーティリティ 、またはディスプレイユーティリティと一緒に垂直揃えユーティリティ 。
最初は、 Vertical Alignment Utilitiesが明白な選択肢に見えますが、これらはインラインとテーブルの表示要素でのみ機能します。ブートストラップ4の垂直配置オプションとシナリオを紹介します...
1 - 自動マージンを使用する垂直センター:
垂直方向に集中する1つの方法は、 my-auto
を使用するmy-auto
です。これは、要素をそのコンテナの中央に配置します。たとえば、 h-100
は列を高さにし、 my-auto
はcol-sm-12
列を垂直方向に中央に配置します。
<div class="row h-100">
<div class="col-sm-12 my-auto">
<div class="card card-block w-25">Card</div>
</div>
</div>
my-auto
は垂直y軸のマージンを表し、以下と等価です。
margin-top: auto;
margin-bottom: auto;
2 - Flexbox付き垂直センター:
ブートストラップ4の.row
がdisplay:flex
以来、 display:flex
を使用するalign-self-center
、どの列にもalign-self-center
を使用するだけで垂直方向に.row
することができます。
<div class="row">
<div class="col-6 align-self-center">
<div class="card card-block">
Center
</div>
</div>
<div class="col-6">
<div class="card card-inverse card-danger">
Taller
</div>
</div>
</div>
または、行全体のすべての.row
- col-*
を垂直方向に中央揃えにするために、 .row
全体にalign-items-center
を使用しalign-items-center
。
<div class="row align-items-center">
<div class="col-6">
<div class="card card-block">
Center
</div>
</div>
<div class="col-6">
<div class="card card-inverse card-danger">
Taller
</div>
</div>
</div>
3 - ディスプレイ・ユースを使用する垂直センター:
ブートストラップ4には、 display:table
、 display:table-cell
、 display:inline
など、 display:inline
に使用できる表示用ユーティリティがあります。これらは、インライン、インラインブロック、または表のセル要素を整列するために垂直方向の整列ユーティリティで使用できます。
<div class="row h-50">
<div class="col-sm-12 h-100 d-table">
<div class="card card-block d-table-cell align-middle">
I am centered vertically
</div>
</div>
</div>
ブートストラップ4センタリング
列内に要素、列、またはコンテンツを配置する方法は、ブートストラップ4では異なっています。
水平センター
-
text-center
は引き続きdisplay:inline
使用されdisplay:inline
要素 -
mx-auto
は、center-block
をセンターdisplay:block
置き換えdisplay:block
要素 -
offset-*
またはmx-auto
を使用して、グリッド列を中央offset-*
することができます
mx-auto
(自動x軸マージン)は中央display:block
またはdisplay:flex
幅 、( %
、 vw
、 px
など)が定義された display:flex
要素。 Flexboxはデフォルトでグリッドカラムで使用されるため、さまざまなフレックスボックスのセンタリング方法もあります。
センターテキストまたはインライン要素: text-center
<div class="container">
<h1 class="text-center">i'm centered</h1>
<div class="row">
<div class="col text-center">i'm centered!</div>
</div>
</div>
センターdisplay:block
またはdisplay:flex
: mx-auto
<div class="row">
<div class="col-12">
<img class="mx-auto d-block" src="//placehold.it/200x150?text=mx-auto">
</div>
</div>
オフセットを使用した中心列: offset-*
<div class="row">
<div class="col-4 offset-4">
<h6>I'm .col-4 centered (offset 4)
</div>
</div>
列は、 mx-auto
中心に置くこともできます。
<div class="row">
<div class="col-4 mx-auto">
<h6>I'm .col-4 centered</h6>
</div>
</div>
垂直センター
ブートストラップ4(Y軸)の垂直センタリングについては、次のドキュメントを参照してください。 ブートストラップ4垂直整列
ブートストラップ4列の順序
ブートストラップ3では、プッシュプルクラスを使用して順序(または位置)を変更することができました。ブートストラップ4では、 プッシュプルクラスは引き続き動作し、さらにフレックスボックスオーダーを使用することができます。
ブートストラップ4において、 プッシュ プル・クラスになりましたpush-{viewport}-{units}
とpull-{viewport}-{units}
とxs-
インフィックスが除去されました。 xs
とsm
の列順序を1-3-2のレイアウトに変更するこの例を考えてみましょう。
<div class="row">
<div class="col-3 col-md-6">
1
</div>
<div class="col-3 col-md-6 push-6 push-md-0">
2
</div>
<div class="col-6 col-md-12 pull-3 pull-md-0">
3
</div>
</div>
新しいバージョン4は、フレキシボックスがあるので、 別のオプションは、列の順序を変更するフレキシボックスユーティリティクラスを使用することです。今度は全幅、12単位のcol-*-12
列はフレックスボックスの順序を使用して反転することができます。
<div class="row">
<div class="col-md-12">
Col 1
</div>
<div class="col-md-12 flex-first flex-md-unordered">
Col 2
</div>
</div>