ブートストラップ3ブレークポイントとメディアクエリ


170

上のブートストラップ3メディアクエリのドキュメントは言います:

以下のメディアクエリをLessファイルで使用して、グリッドシステムに主要なブレークポイントを作成します。

非常に小さなデバイス(電話、768px未満):これはブートストラップのデフォルトであるため、メディアクエリはありません

小型デバイス(タブレット、768px以上): @media (min-width: @screen-sm-min) { ... }

中型デバイス(デスクトップ、992px以上): @media (min-width: @screen-md-min) { ... }

大型デバイス(大型デスクトップ、1200px以上): @media (min-width: @screen-lg-min) { ... }

我々は使用することができるようになっている@screen-sm@screen-md@screen-lgだけでなく、私たちのメディアクエリでの名前?それは私には効かないからです。@media (min-width: 768px) {...}動作する前などにピクセル測定を使用する必要があります。私は何か間違ったことをしていますか?

また、超小型デバイスの480pxへの参照はタイプミスですか?それは767pxまでと言うべきではありませんか?ドキュメントから削除されたため



BS4で使用されるセレクターを以下に示します。「極小」がデフォルトであるため、BS4には「最低」設定はありません。つまり、最初にXSサイズをコーディングしてから、後でこれらのメディアをオーバーライドします。@media(min-width:576px){} @media(min-width:768px){} @media(min-width:992px){} @media(min-width:1200px){}
Babbandeep Singh

回答:


204

ブートストラップ4メディアクエリ

// Extra small devices (portrait phones, less than 576px)
// No media query since this is the default in Bootstrap

// Small devices (landscape phones, 576px and up)
@media (min-width: 576px) { ... }

// Medium devices (tablets, 768px and up)
@media (min-width: 768px) { ... }

// Large devices (desktops, 992px and up)
@media (min-width: 992px) { ... }

// Extra large devices (large desktops, 1200px and up)
@media (min-width: 1200px) { ... }

Bootstrap 4は、SassのソースCSSを提供します。これは、Sass Mixinsを介して含めることができます。

@include media-breakpoint-up(xs) { ... }
@include media-breakpoint-up(sm) { ... }
@include media-breakpoint-up(md) { ... }
@include media-breakpoint-up(lg) { ... }
@include media-breakpoint-up(xl) { ... }

// Example usage:
@include media-breakpoint-up(sm) {
  .some-class {
    display: block;
  }
}

ブートストラップ3メディアクエリ

/*==========  Mobile First Method  ==========*/

/* Custom, iPhone Retina */ 
@media only screen and (min-width : 320px) {

}

/* Extra Small Devices, Phones */ 
@media only screen and (min-width : 480px) {

}

/* Small Devices, Tablets */
@media only screen and (min-width : 768px) {

}

/* Medium Devices, Desktops */
@media only screen and (min-width : 992px) {

}

/* Large Devices, Wide Screens */
@media only screen and (min-width : 1200px) {

}



/*==========  Non-Mobile First Method  ==========*/

/* Large Devices, Wide Screens */
@media only screen and (max-width : 1200px) {

}

/* Medium Devices, Desktops */
@media only screen and (max-width : 992px) {

}

/* Small Devices, Tablets */
@media only screen and (max-width : 768px) {

}

/* Extra Small Devices, Phones */ 
@media only screen and (max-width : 480px) {

}

/* Custom, iPhone Retina */ 
@media only screen and (max-width : 320px) {

}

ブートストラップ2.3.2メディアクエリ

@media only screen and (max-width : 1200px) {

}

@media only screen and (max-width : 979px) {

}

@media only screen and (max-width : 767px) {

}

@media only screen and (max-width : 480px) {

}

@media only screen and (max-width : 320px) {

}

リソース:https : //scotch.io/quick-tips/default-sizes-for-twitter-bootstraps-media-queries


8
@ CyrilDuchon-Doris、質問はBootstrap 3に関するものだったので...そうは思いません。
バガタ

12
回答には30点が与えられ、Bootstrap 2について言及されています。Bootstrap3を使用していなくても、多くの人がそれを見てくれます。少しだけでも、最新の情報を使用して自分の回答を編集した人にはいつも感謝しています。初期スコープの。
Cyril Duchon-Doris

479未満の余分な小さなものはありますか?
SuperUberDuper 2017年

2
Bootstrap v4はまだ安定していません。あなたはそれを知っていますか?安定したリリースに達する前に、答えを何度も更新する必要があるかもしれません。
ガーマン2017年

ここに1ピクセルの間違いがあると思います。これは実際に影響する可能性があります。1200pxおよび320px画面の場合、最大メディアクエリと最小メディアクエリの両方が有効になります。すべての最大メディアクエリは、マイナス1ピクセル(たとえば、1199ピクセル)にする必要があります。AFAIKは実際には画面が320pxで始まるため、最小および最大320pxのメディアクエリは実際には意味がありません。
ベン・カープ

39

ブートストラップはメディアクエリを十分に文書化しません。これらの変数は@screen-sm@screen-md@screen-lg実際にLESS変数ではなく、単純なCSSを参照しています。

Bootstrapをカスタマイズすると、メディアクエリのブレークポイントを変更でき、コンパイル時に@ screen-xx変数がscreen-xxとして定義したピクセル幅に変更されます。これは、このようなフレームワークを一度コーディングして、エンドユーザーがニーズに合わせてカスタマイズする方法です。

より明確にするためにここで同様の質問:Bootstrap 3.0 Mediaクエリ

CSSでは、従来のメディアクエリを使用して、Bootstrapが実行していることをオーバーライドまたは追加する必要があります。

2番目の質問に関しては、それはタイプミスではありません。画面が768px未満になると、フレームワークは完全に流動的になり、任意のデバイス幅でサイズ変更され、ブレークポイントの必要がなくなります。モバイル最適化のレイアウトに特定の変更が発生するため、480pxのブレークポイントが存在します。

この動作を確認するには、彼らのサイト(http://getbootstrap.com/examples/navbar-fixed-top/)でこの例にアクセスし、ウィンドウのサイズを変更して、768px以降のデザインの処理を確認してください。


6
この動作を確認するには、サイトのこの例に移動し、ウィンドウのサイズを変更して、768px以降のデザインがどのように処理されるかを確認してください。//それが480pxとどう関係しているのですか?たとえば、500ピクセルと比較して、480ピクセルでは何も変化が見られません。
クリスハント

Bootstrap 3の可変システムを自然に拡張する限り、これは非常に効率的なアプローチであるため、受け入れられる答えになるはずです。
クレウィス2016年

28

この問題はhttps://github.com/twbs/bootstrap/issues/10203で説明されています 。現時点では、互換性の理由からグリッドを変更する予定はありません。

このフォーク、ブランチからBootstrapを取得できますhshttps : //github.com/antespi/bootstrap/tree/hs

このブランチは、480pxで追加のブレークポイントを提供するため、次のようにする必要があります。

  1. モバイル向けの設計(XS、480px未満)
  2. HTMLにHS(Horizo​​ntal Small Devices)クラスを追加:col-hs-*、visible-hs、...、および水平モバイルデバイス用のデザイン(HS、768px未満)
  3. タブレットデバイス向けの設計(SM、992px未満)
  4. デスクトップデバイス向けのデザイン(MD、1200px未満)
  5. 大型デバイス向けの設計(LG、1200px以上)

最初にモバイルを設計することが、Bootstrap 3を理解するための鍵です。これは、BootStrap 2.xからの大きな変更です。ルールテンプレートとして、これを(LESSで)実行できます。

.template {
    /* rules for mobile vertical (< 480) */

    @media (min-width: @screen-hs-min) {
       /* rules for mobile horizontal (480 > 768)  */
    }
    @media (min-width: @screen-sm-min) {
       /* rules for tablet (768 > 992) */
    }
    @media (min-width: @screen-md-min) {
       /* rules for desktop (992 > 1200) */
    }
    @media (min-width: @screen-lg-min) {
       /* rules for large (> 1200) */
    }
}

1
このフォークの付加価値がわかりません。私が理解しているように@screen-hs-min:@screen-xs;@screen-xsここで直接使用しないのはなぜですか?
Bass Jobsen、2014年

より良い理解のために。この変数は、テンプレートに視覚的な一貫性を与えます。ブートストラップ3はモバイルファーストであるため、メディアクエリ以外のすべてのルールはモバイルサイズ用です。次に、HSに追加のルールが必要な場合はに書き留めmin-width: @screen-hs-min、SMに追加のルールが必要な場合はに書き留めますmin-width: @screen-sm-min。このフォークは、480pxに新しいブレークポイントを追加するために使用されます。その後、モバイルサイズは480px未満になり、新しいサイズ(HS)は480pxから768pxの間に表示されます
Antonio Espinosa

テンプレートには少しタイプミスがあることに注意してください。screen-hs-minはscreen-xs-minである必要があります
eflat

@eflatこれはタイプミスではなく、とscreen-hs-minscreen-xs-minscreen-sm-min
Antonio Espinosa

7

これは少し古いことはわかっていますが、貢献したいと思っていました。@Sophyの回答に基づいて、.xxsブレークポイントを追加するためにこれを行いました。visible-inline、table.visibleなどのクラスは処理していません。

/*==========  Mobile First Method  ==========*/

  .col-xxs-12, .col-xxs-11, .col-xxs-10, .col-xxs-9, .col-xxs-8, .col-xxs-7, .col-xxs-6, .col-xxs-5, .col-xxs-4, .col-xxs-3, .col-xxs-2, .col-xxs-1 {
    position: relative;
    min-height: 1px;
    padding-left: 15px;
    padding-right: 15px;
    float: left;
  }

.visible-xxs {
  display:none !important;
}

/* Custom, iPhone Retina */
@media only screen and (min-width : 320px) and (max-width:479px) {

  .visible-xxs {
    display: block !important;
  }
  .visible-xs {
    display:none !important;
  }

  .hidden-xs {
    display:block !important;
  }

  .hidden-xxs {
    display:none !important;
  }

  .col-xxs-12 {
    width: 100%;
  }
  .col-xxs-11 {
    width: 91.66666667%;
  }
  .col-xxs-10 {
    width: 83.33333333%;
  }
  .col-xxs-9 {
    width: 75%;
  }
  .col-xxs-8 {
    width: 66.66666667%;
  }
  .col-xxs-7 {
    width: 58.33333333%;
  }
  .col-xxs-6 {
    width: 50%;
  }
  .col-xxs-5 {
    width: 41.66666667%;
  }
  .col-xxs-4 {
    width: 33.33333333%;
  }
  .col-xxs-3 {
    width: 25%;
  }
  .col-xxs-2 {
    width: 16.66666667%;
  }
  .col-xxs-1 {
    width: 8.33333333%;
  }
  .col-xxs-pull-12 {
    right: 100%;
  }
  .col-xxs-pull-11 {
    right: 91.66666667%;
  }
  .col-xxs-pull-10 {
    right: 83.33333333%;
  }
  .col-xxs-pull-9 {
    right: 75%;
  }
  .col-xxs-pull-8 {
    right: 66.66666667%;
  }
  .col-xxs-pull-7 {
    right: 58.33333333%;
  }
  .col-xxs-pull-6 {
    right: 50%;
  }
  .col-xxs-pull-5 {
    right: 41.66666667%;
  }
  .col-xxs-pull-4 {
    right: 33.33333333%;
  }
  .col-xxs-pull-3 {
    right: 25%;
  }
  .col-xxs-pull-2 {
    right: 16.66666667%;
  }
  .col-xxs-pull-1 {
    right: 8.33333333%;
  }
  .col-xxs-pull-0 {
    right: auto;
  }
  .col-xxs-push-12 {
    left: 100%;
  }
  .col-xxs-push-11 {
    left: 91.66666667%;
  }
  .col-xxs-push-10 {
    left: 83.33333333%;
  }
  .col-xxs-push-9 {
    left: 75%;
  }
  .col-xxs-push-8 {
    left: 66.66666667%;
  }
  .col-xxs-push-7 {
    left: 58.33333333%;
  }
  .col-xxs-push-6 {
    left: 50%;
  }
  .col-xxs-push-5 {
    left: 41.66666667%;
  }
  .col-xxs-push-4 {
    left: 33.33333333%;
  }
  .col-xxs-push-3 {
    left: 25%;
  }
  .col-xxs-push-2 {
    left: 16.66666667%;
  }
  .col-xxs-push-1 {
    left: 8.33333333%;
  }
  .col-xxs-push-0 {
    left: auto;
  }
  .col-xxs-offset-12 {
    margin-left: 100%;
  }
  .col-xxs-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-xxs-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-xxs-offset-9 {
    margin-left: 75%;
  }
  .col-xxs-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-xxs-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-xxs-offset-6 {
    margin-left: 50%;
  }
  .col-xxs-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-xxs-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-xxs-offset-3 {
    margin-left: 25%;
  }
  .col-xxs-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-xxs-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-xxs-offset-0 {
    margin-left: 0%;
  }

}

/* Extra Small Devices, Phones */
@media only screen and (min-width : 480px) {

  .visible-xs {
    display:block !important;
  }

}

/* Small Devices, Tablets */
@media only screen and (min-width : 768px) {

  .visible-xs {
    display:none !important;
  }

}

/* Medium Devices, Desktops */
@media only screen and (min-width : 992px) {

}

/* Large Devices, Wide Screens */
@media only screen and (min-width : 1200px) {

}

1
本当に必要なものに感謝します!だから私はそれをもう一度やり直す必要はありません:)
antoni

また、.visible-xs-inline, .visible-xs-inline-blockオーバーライドするときはいつでもクラスを忘れないでください.visible-xs
antoni

6

480pxへの参照が削除されました。代わりにそれは言う:

/* Extra small devices (phones, less than 768px) */
/* No media query since this is the default in Bootstrap */

Bootstrap 3では768px未満のブレークポイントはありません。

@screen-sm-minおよびその他のミックスインを使用する場合は、LESSでコンパイルする必要があります。http://getbootstrap.com/css/#grid-lessを参照してください

Bootstrap 3とLESSの使用方法に関するチュートリアルは次のとおりです。http//www.helloerik.com/bootstrap-3-less-workflow-tutorial


2

CSSを構築するためにhttp://lesscss.org/を使用する場合、これらのブレークポイントを使用できるはずです。

/* Extra small devices (phones, less than 768px) */
/* No media query since this is the default in Bootstrap */

/* Small devices (tablets, 768px and up) */
@media (min-width: @screen-sm-min) {  }

/* Medium devices (desktops, 992px and up) */
@media (min-width: @screen-md-min) {  }

/* Large devices (large desktops, 1200px and up) */
@media (min-width: @screen-lg-min) {  }

https://getbootstrap.com/docs/3.4/css/#grid-media-queriesから

実際@screen-sm-min、変数は_variableLessで構築するときに指定された値に置き換えられます。Lessを使用しない場合は、この変数を値で置き換えることができます。

/* Extra small devices (phones, less than 768px) */
/* No media query since this is the default in Bootstrap */

/* Small devices (tablets, 768px and up) */
@media (min-width: 768px) {  }

/* Medium devices (desktops, 992px and up) */
@media (min-width: 992px) {  }

/* Large devices (large desktops, 1200px and up) */
@media (min-width: 1200px) {  }

Bootstrap 3はSassを正式にサポートしています:https : //github.com/twbs/bootstrap-sass。Sassを使用している場合(および使用する必要がある場合)、構文は少し異なります。

/* Extra small devices (phones, less than 768px) */
/* No media query since this is the default in Bootstrap */

/* Small devices (tablets, 768px and up) */
@media (min-width: $screen-sm-min) { }

/* Medium devices (desktops, 992px and up) */
@media (min-width: $screen-md-min) {  }

/* Large devices (large desktops, 1200px and up) */
@media (min-width: $screen-lg-min) {  }

1

Bootstrap 4で使用されるセレクターを以下に示します。BS4には「極小」がデフォルトであるため、「最低」設定はありません。つまり、最初にXSサイズをコーディングし、その後これらのメディアをオーバーライドします。

@media(min-width:576px){}
@media(min-width:768px){}
@media(min-width:992px){}
@media(min-width:1200px){}

0

@media(max-width:768px)を使用すると、768pxでデザインが壊れます。しかし、767pxと769pxでは問題ありません。だから、小さなデバイスをターゲットにする場合の最大幅は767pxになると思います。


0

ブートストラップ3の場合、navbarコンポーネントに次のコードがあります

/**
 * Navbar styling.
 */
@mobile:          ~"screen and (max-width: @{screen-xs-max})";
@tablet:          ~"screen and (min-width: @{screen-sm-min})";
@normal:          ~"screen and (min-width: @{screen-md-min})";
@wide:            ~"screen and (min-width: @{screen-lg-min})";
@grid-breakpoint: ~"screen and (min-width: @{grid-float-breakpoint})";

それからあなたはのようなものを使うことができます

@media wide { selector: style }

これは、変数に設定されている値を使用します。

エスケープにより、任意の文字列をプロパティまたは変数値として使用できます。〜 "anything"または〜 'anything'内のすべてがそのまま使用され、補間以外は変更されません。

http://lesscss.org


-6
@media screen and (max-width: 767px) {

}

@media screen and (min-width: 768px) and (max-width: 991px){


}

@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : landscape){


}

@media screen and (min-width: 992px) {



}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.