Bootstrap 3のブレークポイントとメディアクエリ
Bootstrap 3 media queries documentation]1にはこう書かれています。
以下のメディアクエリをLessファイルで使用し、グリッドシステムの主要なブレークポイントを作成しています。 とあります。 Extra small devices (phone, less than 768px): Bootstrapのデフォルトであるため、メディアクエリはありません。
スモールデバイス(タブレット、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までとすべきではないでしょうか? (since removed from the documentation)
155
3
Bootstrapはメディアクエリをあまりうまく文書化していません。screen-sm
,
screen-md,
screen-lg` の変数は、実際には LESS の変数を参照しており、単純な CSS ではありません。Bootstrapをカスタマイズすると、メディアクエリのブレークポイントを変更することができ、コンパイル時には@screen-xx変数がscreen-xxとして定義したピクセル幅に変更されます。このようにして、このようなフレームワークは、一度コード化した後、エンドユーザーがニーズに合わせてカスタマイズすることができるのです。
似たような質問がこちらにもありましたので、こちらをご覧ください。https://stackoverflow.com/questions/18796505/bootstrap-3-0-media-queries
CSSでは、Bootstrapが行っていることを上書きしたり、追加したりするために、従来のメディアクエリを使用する必要があります。
2番目の質問に関しては、それはタイプミスではありません。画面が768px以下になると、フレームワークは完全に流動的になり、あらゆるデバイスの幅に合わせてリサイズされるため、ブレークポイントの必要性がなくなります。480pxのブレークポイントは、モバイル最適化のためにレイアウトに特別な変更を加えるために存在しています。
実際の動作を確認するには、同社サイトの例(http://getbootstrap.com/examples/navbar-fixed-top/)にアクセスし、768px以降のデザインがどのように処理されるか、ウィンドウサイズを変更してみてください。
この問題は、https://github.com/twbs/bootstrap/issues/10203 で議論されています。 現在のところ、互換性の観点からGridを変更する予定はありません。
Bootstrap はこのフォーク、ブランチ
hs
から入手できます: https://github.com/antespi/bootstrap/tree/hsこのブランチでは、480pxで追加のブレークポイントが与えられているので、それを利用する必要があります。
1.モバイルファーストでデザインする(XS、480px以下)。 2.HTMLにHS(Horizontal Small Devices)クラス(col-hs-*, visible-hs, ...)を追加し、横長のモバイルデバイス用にデザインする(HS、768px以下)。 3.タブレット端末用にデザインする(SM、992px以下 4.デスクトップ用のデザイン(MD、1200px以下 5.ラージデバイス用のデザイン(LG、1200px以上
モバイルファーストのデザインは、Bootstrap 3を理解する上で重要です。これは、BootStrap 2.xからの大きな変更点です。ルールテンプレートとしては、(LESSで)以下のようになります。
480pxへの言及が削除されました。その代わりに、次のように書かれています。
Bootstrap 3では、768px以下のブレークポイントはありません。
もしあなたが
@screen-sm-min
や他の mixin を使いたいなら、LESS でコンパイルする必要があります。http://getbootstrap.com/css/#grid-less を参照してください。Bootstrap 3とLESSの使い方のチュートリアルはこちらです: http://www.helloerik.com/bootstrap-3-less-workflow-tutorial