レスポンシブな画像調整センターブートストラップ3


423

Bootstrap 3を使用してカタログを作成します。製品画像はタブレットで表示すると、サイズが小さく(500x500)、ブラウザーでの幅が767ピクセルであるため、見苦しく見えます。画面中央に配置したいのですが、どういうわけかできません。誰が問題を解決する手助けをしますか?

ヘッドラインの下に中央揃えされていない製品ページの一部のスクリーンショット


5
私はあなたのサイトと製品のデザインが好きです-いい仕事:)
Bojangles '27

7
「なぜ質問本体にコードを配置する必要があるのか​​」の別の例。
LEQADA、2015年

回答:


572

Bootstrap v3.0.1以降を使用している場合は、代わりにこのソリューションを使用してください。カスタムCSSでBootstrapのスタイルをオーバーライドするのではなく、代わりにBootstrap機能を使用します。

私の元の答えは後世のために以下に示されています


これは快適な修正です。.img-responsiveBootstrapから既にが設定されているためdisplay: block、を使用margin: 0 autoしてイメージを中央に配置できます。

.product .img-responsive {
    margin: 0 auto;
}

35
margin: 0 auto.img-sensitiveを変更するよりも、で新しいクラスを作成する方が良いでしょう。
kniteは2013

4
個人的には、特にこのデザインでは、レスポンシブな画像を中央に配置したくない場所は考えられません。それはすべてユースケースと将来何が起こるかによって異なります
Bojangles

あなたはブートストラップV4以上使用している場合は、この答えをご覧ください。stackoverflow.com/a/43293957/4102515を
snorberhuis

1156

.center-blockTwitter Bootstrap 3(v3.0.1以降)にはクラスがあるため、以下を使用します。

<img src="..." alt="..." class="img-responsive center-block" />

27
これを使用するためにCSSを追加する必要がないため、これが受け入れられる答えになるはずです。
user2602152 2014年

16
class="img-responsive" style="margin: 0 auto;"私にとってclass="img-responsive center-block"はうまく
いき

9
img-sensitiveを使用すると、中央揃えが機能しません。
Ismael 14

1
@DHlavatyは、.img-sensitive AND .center-blockを使用することと、受け入れられた回答が示唆するように自動マージンを使用して.img-sensitiveを使用することの違いを説明できますか?1つの方法の方が堅牢ですか?
user137717 2015年

1
画像がクリック可能であると想定されている場合は、これを使用しないでください。つまり、<a href="#"> </a>ペアでラップされている場合、クリック可能な領域は、画像よりもかなり大きくなる可能性のある囲んでいるコンテナの全幅に拡大されます。これは、「空の」スペースだと思うものをクリックするユーザーを混乱させるかもしれません。
CXJ 2017

108

クラスのみをcenter-blockイメージに追加します。これはBootstrap 4でも機能します。

<img src="..." alt="..." class="center-block" />

注:を使用しcenter-blockても機能しimg-responsiveます


6
最良の応答ですが、過小評価されています。それがフレームワークを使用する理由です!
バウマンゾーン2016年

そう。素晴らしい。ありがとう
AndrewLeonardi 2017年

その作業..ありがとう
Dhiren Patel

31

.text-centerBootstrap 3を使用している場合は、クラスを使用してください。

<div class="text-center">
    <img src="..." alt="..."/>
</div>

注:これはimg-sensitiveでは機能しません


1
質問はについてですimg-responsive
アレクセイKosov

imgレスポンシブについては、Google検索でこれが表示される可能性があるユーザー向けにimg-center(3.3.6でテスト済み)を追加
DardanM

10

これにより、画像が中央に配置され、反応が良くなります。

<img src="..." class="img-responsive" style="margin:0 auto;"/>

6

もっと「抽象的な」分類を提案します。.img-sensitiveクラスと組み合わせて使用​​できる新しいクラス "img-center"を追加します。

// Center responsive images
.img-responsive.img-center {
  margin: 0 auto;
}

3
@media (max-width: 767px) {
   img {
     display: table;
     margin: 0 auto;
   }
}

2
なんでdisplay: table?もう仕事にdisplay: blockは十分ですmargin: 0 auto
Bojangles 2013

3

img-responsiveこのスタイルクラスを使用しても、他の画像に影響を与えることなく作業できます。

このタグの前にセクションid / div id / classを置いて、これimgがネストされる順序を定義できます。この習慣img-responsiveはその地域でのみ機能します。

次のように定義されたHTML領域があるとします。

<section id="work"> 
    <div class="container">
        <div class="row">
            <img class="img-responsive" src="some_image.jpg">
        </div>
    </div>
</section>

次に、CSSは次のようになります。

section#work .img-responsive{
    margin: 0 auto;
}

注:この回答はimg-responsive、全体としての変更による潜在的な影響に関連しています。もちろん、center-block最も簡単なソリューションです。


画像の下にテキストがある場合に画像を中央に配置するには、行クラスで画像をラップすることが重要です。
Glenn Plas

3

このコードを試してみてください。ブートストラップ4にはセンターブロッククラスがないため、ブートストラップ4でも小さなアイコンで機能します。このメソッドを試してみてください。画像の位置を変更するには、.col-md-12する.col-md-8.col-md-4、それはあなた件までです。

<div class="container">
       <div class="row">
          <div class="col-md-12">
            <div class="text-xs-center text-lg-center">
           <img src="" class="img-thumbnail">
           </div>
          </div>
       </div>
  </div>

3

これを試して:

.img-responsive{
    display: block;
    height: auto;
    max-width: 100%;
	  margin:0 auto;
}
.Image{
  background:#ccc;
  padding:30px;
}
<div class="Image">
  <img src="http://minisoft.com.bd/uploads/ourteam/rafiq.jpg" class="img-responsive" title="Rafique" alt="Rafique">
</div>


3

すべての画像のサムネイルを次のように行/列div内に配置するだけです。

<div class="row text-center">
 <div class="col-12">
  # your images here...
 </div>
</div>

そしてすべてがうまくいきます!


2

すでに与えられた回答に追加するには、img-responsiveとの組み合わせでimg-thumbnailをに設定display: blockdisplay: inline blockます。


2
<div class="col-md-12 text-center">
    <img class="img-responsive tocenter" />
</div>

<style>
   .tocenter {
    margin:0 auto;
    display: inline;
    }
</style>

0

あなたはmargin:0 autoを定義することでそれを修正できます

または、col-md-offsetも使用できます

<!DOCTYPE html>
<html>
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
</head>
<style>
.img-responsive{
margin:0 auto;
}
</style>
<body>

<div class="container">
  <h2>Image</h2>
<div class="row">
<div class="col-md-12">
  <p>The .img-responsive class makes the image scale nicely to the parent element (resize the browser window to see the effect):</p>                  
  <img src="http://www.w3schools.com/bootstrap/cinqueterre.jpg" class="img-responsive" alt="Cinque Terre" width="304" height="236"> 
</div>
</div>
</div>

</body>
</html>


0

標準クラスのみを使用してすべてのBooostrapオブジェクトに適用されるより正確な方法は、上部と下部のマージンを設定しないことです(画像がこれらを親から継承できるため)。

.text-center .img-responsive {
    margin-left: auto;
    margin-right: auto;
}

私はそのために要旨も作成しました。そのため、バグのために変更が適用される場合、更新バージョンは常にここにあります:https : //gist.github.com/jdrda/09a38bf152dd6a8aff4151c58679cc66


0

これまでのところ、受け入れる最善の解決策はのようです<img class="center-block" ... />。しかし、どのようにcenter-block機能するかについては誰も言及していません。

例としてBootstrap v3.3.6を考えます:

.center-block {
  display: block;
  margin-right: auto;
  margin-left: auto;
}

dispalyfor のデフォルト値は<img>ですinline。値blockは、要素をブロック要素(など<p>)として表示します。新しい行から始まり、幅全体を占めます。このように、2つのマージン設定により、画像は水平方向の中央に留まります。

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