Bootstrap v3では、非表示の**クラスとclearfixを組み合わせて、さまざまな画面幅で複数列のレイアウトを制御することがよくあります。例えば、
複数の非表示 - **を1つのDIVに組み合わせて、複数の列を異なる画面幅で正しく表示することができます。
一例として、製品写真の列を大きな画面サイズで1行に4つ、小さな画面に3つ、そして非常に小さな画面に2つ表示する場合を例として説明します。製品の写真は高さが異なる場合があるため、行が正しく改行されるようにするためにclearfixが必要です。
これがv3の例です...
http://jsbin.com/tosebayode/edit?html,css,output
これでv4はこれらのクラスを廃止し、それらを表示/非表示の上下のクラスに置き換えました。代わりに複数のDIVで同じことをする必要があるようです。
これはv4の同様の例です...
http://jsbin.com/sagowihowa/edit?html,css,output
それで、私は単一のDIVから同じことを達成するために多数のアップ/ダウンのクラスを持つ複数のDIVを追加しなければならないことに行った。
から...
<div class="clearfix visible-xs-block visible-sm-block"></div>
に...
<div class="clearfix hidden-sm-up"></div>
<div class="clearfix hidden-md-up hidden-xs-down"></div>
<div class="clearfix hidden-md-down"></div>
私が見落としてきたv4でこれを行うより良い方法はありますか?
ブートストラップ4用の更新プログラム(2018)
Bootstrap 4のhidden-*
およびvisible-*
クラス存在しない要素をBootstrap 4の特定の層またはブレークポイントで非表示にする場合は、d-*
表示クラスを使用します。 それに応じて。
largeブレークポイントによって上書きされない限り、超小型/モバイル(以前のxs
)がデフォルトの(暗黙の)ブレークポイントであることを忘れないでください。そのため、 ブートストラップ4 には-xs
インフィックスはもう存在しません。
ブレークポイントおよび下方向 に対して表示/非表示:
hidden-xs-down (hidden-xs)
= d-none d-sm-block
hidden-sm-down (hidden-sm hidden-xs)
= d-none d-md-block
hidden-md-down (hidden-md hidden-sm hidden-xs)
= d-none d-lg-block
hidden-lg-down
= d-none d-xl-block
hidden-xl-down
(該当なし3.x)= d-none
(hidden
と同じ)ブレークポイントおよびup に対して表示/非表示:
hidden-xs-up
= d-none
(hidden
と同じ)hidden-sm-up
= d-sm-none
hidden-md-up
= d-md-none
hidden-lg-up
= d-lg-none
hidden-xl-up
(該当なし3.x)= d-xl-none
Show/hide 単一のブレークポイントの場合のみ :
hidden-xs
(only)= d-none d-sm-block
(hidden-xs-down
と同じ)hidden-sm
(only)= d-block d-sm-none d-md-block
hidden-md
(only)= d-block d-md-none d-lg-block
hidden-lg
(only)= d-block d-lg-none d-xl-block
hidden-xl
(該当なし3.x)= d-block d-xl-none
visible-xs
(only)= d-block d-sm-none
visible-sm
(only)= d-none d-sm-block d-md-none
visible-md
(only)= d-none d-md-block d-lg-none
visible-lg
(only)= d-none d-lg-block d-xl-none
visible-xl
(該当なし3.x)= d-none d-xl-block
また、 は、d-*-block
をd-*-inline
、d-*-flex
、d-*-table-cell
、d-*-table
などに置き換えることができます。要素の表示タイプ。 ディスプレイクラスについてもっと読む
残念ながらすべてのクラスhidden-*-up
とhidden-*-down
はBootstrapから削除されました(Bootstrap Version 4 Beta 、Version 4 Alpha およびVersion 3 の時点でこれらのクラスはまだ存在しています)。
代わりに、次のように新しいクラスd-*
を使用する必要があります。 https://getbootstrap.com/docs/4.0/migration/#utilities
私は、新しいアプローチは状況によってはあまり役に立たないことを知りました。古いアプローチはHIDE要素でしたが、新しいアプローチはSHOW要素です。要素がブロック、インライン、インラインブロック、表などのいずれで表示されているかを知る必要があるため、要素の表示はCSSではそれほど簡単ではありません。
あなたはこのCSSでBootstrap 3から知られている以前の "hidden- *"スタイルを復元したいかもしれません:
/*\
* Restore Bootstrap 3 "hidden" utility classes.
\*/
/* Breakpoint XS */
@media (max-width: 575px)
{
.hidden-xs-down, .hidden-sm-down, .hidden-md-down, .hidden-lg-down, .hidden-xl-down,
.hidden-xs-up,
.hidden-unless-sm, .hidden-unless-md, .hidden-unless-lg, .hidden-unless-xl
{
display: none !important;
}
}
/* Breakpoint SM */
@media (min-width: 576px) and (max-width: 767px)
{
.hidden-sm-down, .hidden-md-down, .hidden-lg-down, .hidden-xl-down,
.hidden-xs-up, .hidden-sm-up,
.hidden-unless-xs, .hidden-unless-md, .hidden-unless-lg, .hidden-unless-xl
{
display: none !important;
}
}
/* Breakpoint MD */
@media (min-width: 768px) and (max-width: 991px)
{
.hidden-md-down, .hidden-lg-down, .hidden-xl-down,
.hidden-xs-up, .hidden-sm-up, .hidden-md-up,
.hidden-unless-xs, .hidden-unless-sm, .hidden-unless-lg, .hidden-unless-xl
{
display: none !important;
}
}
/* Breakpoint LG */
@media (min-width: 992px) and (max-width: 1199px)
{
.hidden-lg-down, .hidden-xl-down,
.hidden-xs-up, .hidden-sm-up, .hidden-md-up, .hidden-lg-up,
.hidden-unless-xs, .hidden-unless-sm, .hidden-unless-md, .hidden-unless-xl
{
display: none !important;
}
}
/* Breakpoint XL */
@media (min-width: 1200px)
{
.hidden-xl-down,
.hidden-xs-up, .hidden-sm-up, .hidden-md-up, .hidden-lg-up, .hidden-xl-up,
.hidden-unless-xs, .hidden-unless-sm, .hidden-unless-md, .hidden-unless-lg
{
display: none !important;
}
}
クラスhidden-unless-*
はBootstrap 3には含まれていませんでしたが、それらも同様に有用であり、自明のはずです。
Bootstrap v4.1では、グリッドシステムで列を非表示にするために新しいクラス名が使用されています。
画面幅に応じて列を非表示にするには、d-none
クラスまたは任意のd-{sm,md,lg,xl}-none
クラスを使用します。特定の画面サイズで列を表示するには、上記のクラスをd-block
またはd-{sm,md,lg,xl}-block
クラスと組み合わせます。
例は次のとおりです。
<div class="d-lg-none">hide on screens wider than lg</div>
<div class="d-none d-lg-block">hide on screens smaller than lg</div>
これらの詳細 ここ 。
私は複数のdivが良い解決策であることを期待していません。
また、.visible-sm-block
を.hidden-xs-down
および.hidden-md-up
(または同じメディアクエリに作用するために.hidden-sm-down
および.hidden-lg-up
)に置き換えることもできると思います。
hidden-sm-up
は次のようにコンパイルされます。
.visible-sm-block {
display: none !important;
}
@media (min-width: 768px) and (max-width: 991px) {
.visible-sm-block {
display: block !important;
}
}
.hidden-sm-down
と.hidden-lg-up
は次のようにコンパイルされます。
@media (max-width: 768px) {
.hidden-xs-down {
display: none !important;
}
}
@media (min-width: 991px) {
.hidden-lg-up {
display: none !important;
}
}
どちらの状況も同じように機能するはずです。
.visible-sm-block
と.visible-lg-block
を置き換えようとすると状況が変わります。 Bootstrap v4のドキュメントには、次のように記載されています。
これらのクラスは、要素の可視性が単一の連続した範囲のビューポートブレークポイントサイズとして表現できない、あまり一般的ではないケースに対応しようとしません。そのような場合は、代わりにカスタムCSSを使用する必要があります。
.visible-sm-and-lg {
display: none !important;
}
@media (min-width: 768px) and (max-width: 991px) {
.visible-sm-and-lg {
display: block !important;
}
}
@media (min-width: 1200px) {
.visible-sm-and-lg {
display: block !important;
}
}
ユーザーKlaroは古い可視性クラスを復元することを提案しました。これは良い考えです。残念ながら、それらの解決策は私のプロジェクトではうまくいきませんでした。
これは、ユーザーが個別に定義できるすべてのブレークポイントをカバーしているため、ブートストラップの古いミックスインを復元することをお勧めします。
これがコードです:
// Restore Bootstrap 3 "hidden" utility classes.
@each $bp in map-keys($grid-breakpoints) {
.hidden-#{$bp}-up {
@include media-breakpoint-up($bp) {
display: none !important;
}
}
.hidden-#{$bp}-down {
@include media-breakpoint-down($bp) {
display: none !important;
}
}
.hidden-#{$bp}-only{
@include media-breakpoint-only($bp){
display:none !important;
}
}
}
私の場合は、この部分を_custom.scss
のこの時点で含まれているbootstrap.scss
ファイルに挿入しました。
/*!
* Bootstrap v4.0.0-beta (https://getbootstrap.com)
* Copyright 2011-2017 The Bootstrap Authors
* Copyright 2011-2017 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
@import "functions";
@import "variables";
@import "mixins";
@import "custom"; // <-- my custom file for overwriting default vars and adding the snippet from above
@import "print";
@import "reboot";
[..]
http://v4-alpha.getbootstrap.com/layout/responsive-utilities/ /
あなたは今隠されているもののサイズをそのように定義しなければなりません
.hidden-xs-down
Xs以下から何でも隠しますが、xsのみ
.hidden-xs-up
すべてを隠します
残念ながら、これらの新しいブートストラップ4クラスは、表示されるdivをcollapse
に設定するため、block
を使用してdiv上の古いクラスのように動作しません。 collapse
機能は動作しなくなりました。
コンテンツ全体を非表示にするブートストラップ4は、このクラス '。d-none'を使用します。以前のbootstrapと同じブレークポイントに関係なくすべてを非表示にします。 _バージョンクラス '。hidden'