Bagaimana menyelaraskan pusat gambar mati dengan bootstrap

207

Saya menggunakan kerangka bootstrap dan mencoba untuk mendapatkan gambar yang terpusat secara horizontal tanpa hasil ..

Saya sudah mencoba berbagai teknik seperti membelah sistem 12 grid dalam 3 blok yang sama misalnya

<div class="container">
    <div class="row">
      <div class="span4"></div>
      <div class="span4"><img src="logo.png" /></div>
      <div class="span4"></div>
    </div>
</div>

Apa metode termudah untuk membuat gambar terpusat relatif terhadap halaman?

Tukang suap
sumber
Dan btw. Anda mungkin ingin melihat bagian "Kolom offset". twitter.github.com/bootstrap/scaffolding.html#gridSystem
mind85
Seseorang telah menandai ini sebagai bukan jawaban, dan saya setuju. Harap tambahkan ini sebagai komentar, dan jawaban Anda akan segera dihapus.
tckmn
1
Jika Anda memiliki img-responsivekelas pada imgtag Anda , gambar mungkin tidak terpusat. Lihat jawaban SO ini untuk penjelasan mengapa menggunakancenter-blockkelasbootstrapakan menyelesaikan masalah dengan cara bootstrap.
cssyphus
Jika Anda menggunakan bootstrap, Anda dapat melakukannya: stackoverflow.com/a/59469712/4654957
Diego Venâncio

Jawaban:

271

Twitter Bootstrap v3.0.3 memiliki kelas: blok-tengah

Pusatkan blok konten

Setel elemen untuk ditampilkan: blok dan pusatkan melalui margin. Tersedia sebagai mixin dan kelas.

Hanya perlu menambahkan kelas .center-blockdi imgtag, terlihat seperti ini

<div class="container">
  <div class="row">
    <div class="span4"></div>
    <div class="span4"><img class="center-block" src="logo.png" /></div>
    <div class="span4"></div>
  </div>
</div>

Di Bootstrap sudah ada panggilan gaya css .center-block

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

Anda dapat melihat sampel dari sini

pengguna3098434
sumber
1
</div>tag penutup pada containerdiv terlihat hilang. ini tidak berfungsi untuk saya pada v3.3.7
tarabyte
141

Cara yang benar untuk melakukan ini adalah

<div class="row text-center">
  <img ...>
</div>
fabiangebert
sumber
25
ini tidak bekerja untuk saya ketika menggunakannya pada ini - startbootstrap.com/round-about .. tetapi menambahkan kelas center-blockke <img>elemen bekerja ..
Sumeet Pareek
3
text-center tidak akan bekerja pada gambar dengan kelas img-responsif tetapi komentar di atas (tentang blok-tengah) menyelesaikan masalah ini
trojan
Pengamatan: Dalam Bootstrap v3.1.0 dimungkinkan untuk memusatkan img-responsif dalam kolom dengan menambahkan pusat teks ke kolom. Perilaku ini rusak di v3.3.4. Sangat menyebalkan. Css menyebalkan.
f470071
Anda harus menggunakan blok-tengah sebagai gantinya, seperti yang dikatakan dalam dokumen: getbootstrap.com/css/#images-responsive
Nacho
95

Perbarui 2018

The center-blockkelas tidak ada lagi di Bootstrap 4 . Untuk memusatkan gambar di Bootstrap 4, gunakan mx-auto d-block...

<img src="..." class="mx-auto d-block"/>
Zim
sumber
6
Hanya dengan menambahkan sedikit penjelasan ke 'Pembaruan 2018': mx-auto mengatur margin kiri dan kanan ke otomatis; d-block set display: block
Michael Moriarty
85

Tambahkan 'blok-tengah' ke gambar sebagai kelas - tidak perlu css tambahan

<img src="images/default.jpg" class="center-block img-responsive"/>
adswebwork
sumber
8
Tidak yakin mengapa -1 - INI ADALAH JAUH JAWABAN TERBAIK! Ia menggunakan kelas helper build ke Bootstrap.
user2562923
4
Di bootstrap 4, gunakan mx-autosebagai ganticenter-block
Quantum7
52

Bootstrap Twitter memiliki kelas yang berpusat: .paginasi berpusat

Ini berhasil saya lakukan:

<div class="row-fluid">
   <div class="span12 pagination-centered"><img src="header.png" alt="header" /></div>
</div>

Css untuk kelas adalah:

.pagination-centered {
  text-align: center;
}
David Silva Smith
sumber
18
Atau mungkin .text-centerkelas?
trejder
36

Anda bisa menggunakan yang berikut ini. Ini mendukung Bootstrap 3.x di atas.

<img src="..." alt="..." class="img-responsive center-block" />
Dulith De Costa
sumber
Terima kasih untuk ini. Apa yang saya butuhkan hari ini.
Ryan Wilson
28

Dengan asumsi tidak ada yang lain di samping gambar, cara terbaik adalah menggunakan text-align: centerdi imginduk:

.row .span4 {
    text-align: center;
}

Edit

Seperti disebutkan dalam jawaban lain, Anda bisa menambahkan kelas CSS bootstrap .text-centerke elemen induk. Ini melakukan hal yang persis sama dan tersedia di v2.3.3 dan v3

Kepala saya sakit
sumber
Sempurna - Itu berhasil. Tetapi katakanlah saya memiliki elemen <ul> di bawah gambar ... Ini tidak sejajar dengan pusat seperti yang diharapkan, apakah ada yang bisa saya tambahkan? Terima kasih
Fixer
1
Sejak .row di salah satu kelas inti di twitter bootstrap. Saya akan merekomendasikan untuk mendefinisikan kelas baru seperti di halaman ini twitter.github.com/bootstrap/index.html dengan masthead kelas.
baptme
1
@Fixer <ul>Masih harus menyelaraskan pusat: jsfiddle.net/N74N7/1 Pasti ada kode CSS lain yang memengaruhinya
My Head Hurts
menghabiskan lebih dari 2 atau 3 jam dan hanya baris ini ... terima kasih!
alamin
18

Bekerja untukku. coba gunakancenter-block

<div class="container row text-center">
    <div class="row">
      <div class="span4"></div>
      <div class="span4"><img class="center-block" src="logo.png" /></div>
      <div class="span4"></div>
    </div>
</div>
Leroy Gumede
sumber
6

Saya memerlukan hal yang sama dan di sini saya menemukan solusinya:

https://stackoverflow.com/a/15084576/1140407

<div class="container">
  <div class="row">
    <div class="span9 centred">
      This div will be centred.
    </div>
  </div>
</div>

dan ke CSS:

[class*="span"].centred {
  margin-left: auto;
  margin-right: auto;
  float: none;
}
Pisau
sumber
Saya pikir orang bootstrap perlu menambahkannya ke css mereka
Muhammad Ahsan
Hai, terima kasih! Saya menggunakan Bootstrap v3 sekarang. Saya menambahkan ini ke div wadah img saya, jadi saya harus menentukan lebar yang tepat (setidaknya) untuk div saya untuk membuat sesuatu berfungsi. Jika Anda tidak memiliki wadah atau ukuran gambar yang bervariasi, tambahkan kelas ini ke gambar Anda.
Inan
1

Anda dapat menggunakan properti margin dengan kelas img bootstrap.

.name-of-class .img-responsive { margin: 0 auto; }
Venkatesh Rajavetrivel
sumber
1

Tampaknya kami dapat menggunakan fitur HTML5 baru jika versi browser tidak menjadi masalah:

dalam file HTML:

<div class="centerBloc">
  I will be in the center
</div>

Dan dalam file CSS, kita menulis:

body .centerBloc {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

Dan div bisa menjadi pusat perhatian di browser.

Laurent
sumber
3
Kelas div Anda disebut .centerBloc dan file css Anda menunjukkan body.loadingDiv ...
Martin
Tetap sekarang
@Martin
0

Kamu harus menggunakan

<div class="row fluid-img">
  <img class="col-lg-12 col-xs-12" src="src.png">
</div>

.fluid-img {
    margin: 60px auto;
}

@media( min-width: 768px ){
        .fluid-img {
            max-width: 768px;
        }
}
@media screen and (min-width: 768px) {
        .fluid-img {
            padding-left: 0;
            padding-right: 0;
        }
}
ed3d
sumber
0

Saya menggunakan justify-content-centerkelas ke baris dalam sebuah wadah. Bekerja dengan baik dengan Bootstrap 4.

<div class="container-fluid">
  <div class="row justify-content-center">
   <img src="logo.png" />
  </div>
</div>
bassment
sumber
0

Saya membuat ini dan menambahkan ke Site.css.

.img-responsive-center {
    display: block;
    height: auto;
    max-width: 100%;
    margin-left:auto;
    margin-right:auto;
}
Chris Catignani
sumber
-3

Anda dapat mengubah CSS dari solusi sebelumnya seperti di bawah ini:

.container, .row { text-align: center; }

Ini harus memusatkan semua elemen di induk divjuga.

Nandu
sumber