Bootstrap 3を使用すると、「xs」画面サイズのときにボタンにbtn-blockクラスを使用させる方法はありますか?
現在、3つのドロップダウンと2つのボタンを含むいくつかの行があるフォームがあります。これは、大画面および中画面で見た目がきれいです。
フォームが小さな画面で変更され、フォームコントロールが垂直方向に流れるように強制されると、ボタンは同じサイズのままで、画面の左側に押し込まれたようにふくらみます。
理想的には、小さい画面サイズのときにそれらをブロックボタンとして使用できるようにしたいので、フォームコントロールのようにフォームの全幅を占有し、少し見栄えを良くします。
ボタンにカスタムクラスを追加し、メディアクエリを使用して、ブレークポイントまでのデバイスで幅を100%に設定します。 SOすなわち
<button class"bootstrap classes custom-class></button>
およびCSS
@media all and (max-width:480px) {
.custom-class { width: 100%; display:block; }
}
また、異なるブレークポイントでメディアクエリを設定することにより、このブレークポイントの上で何が起こっているかを制御することもできます。
以下に示すCSSをBootstrapアプリケーションに追加すると、
.btn-xs-block
.btn-sm-block
.btn-md-block
.btn-lg-block
btn-block
のバリエーションを提供するクラス。これらは応答性が高く、ビューポートのサイズに固有です。
複数のボタンが並んでいて、小さな画面に収まらないために壊れて別の行に折り返す場合は、btn-xs-block
またはbtn-sm-block
(またはまれに他の行クラス)をボタンに追加すると、全画面表示になり、小さな画面に積み重ねられます:
<button class="btn btn-default btn-xs-block" type="button">Button 1</button>
<button class="btn btn-default btn-xs-block" type="button">Button 2</button>
Bootstrap 3:のCSS
@media (max-width: 767px) {
.btn-xs-block {
display: block;
width: 100%;
}
input[type="submit"].btn-xs-block,
input[type="reset"].btn-xs-block,
input[type="button"].btn-xs-block {
width: 100%;
}
.btn-block + .btn-xs-block,
.btn-xs-block + .btn-block,
.btn-xs-block + .btn-xs-block {
margin-top: 0.5rem;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.btn-sm-block {
display: block;
width: 100%;
}
input[type="submit"].btn-sm-block,
input[type="reset"].btn-sm-block,
input[type="button"].btn-sm-block {
width: 100%;
}
.btn-block + .btn-sm-block,
.btn-sm-block + .btn-block,
.btn-sm-block + .btn-sm-block {
margin-top: 0.5rem;
}
}
@media (min-width: 992px) and (max-width: 1199px) {
.btn-md-block {
display: block;
width: 100%;
}
input[type="submit"].btn-md-block,
input[type="reset"].btn-md-block,
input[type="button"].btn-md-block {
width: 100%;
}
.btn-block + .btn-md-block,
.btn-md-block + .btn-block,
.btn-md-block + .btn-md-block {
margin-top: 0.5rem;
}
}
@media (min-width: 1200px) {
.btn-lg-block {
display: block;
width: 100%;
}
input[type="submit"].btn-lg-block,
input[type="reset"].btn-lg-block,
input[type="button"].btn-lg-block {
width: 100%;
}
.btn-block + .btn-lg-block,
.btn-lg-block + .btn-block,
.btn-lg-block + .btn-lg-block {
margin-top: 0.5rem;
}
}
Bootstrap 4の場合、これを使用します。
# HTML
<input type="submit" class="btn btn-primary btn-block-xs-only">
# SCSS
@include media-breakpoint-only(xs) {
.btn-block-xs-only {
display: block;
width: 100%;
}
}
参照用にここを参照してください- http://v4-alpha.getbootstrap.com/layout/overview/
「ネイティブ」だけを使用したい場合は、bootstrap=クラスを使用できます。
<input type="submit"
class="btn btn-primary
visible-xs-block
visible-sm-inline-block visible-md-inline-block visible-lg-inline-block">
ボタンをグリッドに配置することもできるため、追加のCSSを記述する必要はありません。
<div class="row">
<div class="col-12 col-md-2">
<button type="submit" id="submit" class="btn btn-primary btn-block">submit</button>
</div>
<div class="col-0 col-md-10"></div>
</div>
これは、Bootstrap 4の場合に思いついた解決策です。ボタンを中央に置きたいのは、コンテナを埋めたいモバイル解像度の場合を除きます。
これには、最小サイズd-none
が、小さいサイズ以上で表示d-sm-block
それから、大きいサイズ以上に広いサイズを設定して、ボタンがすべてのサイズで適切な幅のままになるようにします。
<div class="row">
<div class="col-lg-5 col-md d-none d-sm-block">
</div>
<div class="col-md text-center">
<button type="submit" class="btn btn-primary btn-block">Register</button>
</div>
<div class="col-lg-5 col-md d-none d-sm-block">
</div>
</div>
Bootstrap 4.3では、組み込みクラスを使用できます。モバイル:Display Blockデスクトップ:Display Inlineブロック
<a href="#button1" class="btn d-block d-md-inline-block">Button 1</a>
<a href="#button1" class="btn d-block d-md-inline-block">Button 2</a>