Làm cách nào để căn chỉnh một trung tâm chết hình ảnh với bootstrap


207

Tôi đang sử dụng khung bootstrap và cố gắng lấy một hình ảnh tập trung theo chiều ngang mà không thành công ..

Tôi đã thử các kỹ thuật khác nhau như chia hệ thống 12 lưới thành 3 khối bằng nhau, vd

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

Phương pháp đơn giản nhất để lấy hình ảnh làm trung tâm so với trang là gì?


Và btw. bạn có thể muốn xem phần "Các cột bù". twitter.github.com/bootstrap/scaffolding.html#gridSystem
mind85

Ai đó đã đánh dấu đây không phải là một câu trả lời, và tôi đồng ý. Vui lòng thêm nhận xét này dưới dạng nhận xét và câu trả lời của bạn sẽ sớm bị xóa.
tckmn

1
Nếu bạn có img-responsivelớp trên imgthẻ của bạn , hình ảnh có thể không ở giữa. Xem câu trả lời SO này để được giải thích tại sao sử dụngcenter-blocklớpbootstrapsẽ giải quyết vấn đề đó theo cách bootstrap.
cssyphus

Nếu bạn đang sử dụng bootstrap, bạn có thể làm điều đó: stackoverflow.com/a/59469712/4654957
Diego Venâncio

Câu trả lời:


271

Twitter Bootstrap v3.0.3 có một lớp: khối trung tâm

Khối nội dung trung tâm

Đặt một yếu tố để hiển thị: khối và trung tâm thông qua lề. Có sẵn như là một mixin và lớp.

Chỉ cần thêm một lớp .center-blocktrong imgthẻ, trông như thế này

<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>

Trong Bootstrap đã có kiểu gọi css .center-block

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

Bạn có thể xem một mẫu từ đây


1
</div>thẻ đóng trên containerdiv trông thiếu. điều này không hiệu quả với tôi trên v3.3.7
tarabyte

141

Cách chính xác để làm điều này là

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

25
điều này không hiệu quả với tôi khi sử dụng nó trên này - startbootstrap.com/round-about .. nhưng thêm một lớp center-blockvào các <img>yếu tố hoạt động ..
Sumeet Pareek

3
trung tâm văn bản sẽ không hoạt động trên hình ảnh với lớp phản hồi img nhưng nhận xét ở trên (về khối trung tâm) giải quyết vấn đề này
trojan

Một quan sát: Trong Bootstrap v3.1.0, có thể căn giữa img-responsive trong cột bằng cách thêm trung tâm văn bản vào cột. Hành vi này bị phá vỡ trong v3.3.4. Rất phiền phức. Css hút.
f470071

thay vào đó, bạn nên sử dụng khối trung tâm, như đã nói trong các tài liệu: getbootstrap.com/css/#images-responsive
Nacho

95

Cập nhật 2018

Các center-blocklớp không còn tồn tại trong Bootstrap 4 . Để căn giữa một hình ảnh trong Bootstrap 4, hãy sử dụng mx-auto d-block...

<img src="..." class="mx-auto d-block"/>

6
Chỉ cần thêm một chút giải thích cho 'Cập nhật 2018': mx-auto đặt lề trái và phải thành tự động; Hiển thị bộ d-block: khối
Michael Moriarty

85

Thêm 'khối trung tâm' vào hình ảnh dưới dạng lớp - không cần thêm css

<img src="images/default.jpg" class="center-block img-responsive"/>

8
Không chắc chắn tại sao -1 - ĐÂY LÀ B FNG CÁCH TRẢ LỜI TỐT NHẤT! Nó sử dụng lớp trình trợ giúp xây dựng thành Bootstrap.
dùng2562923

4
Trong bootstrap 4, sử dụng mx-autothay vìcenter-block
Quantum7

52

Twitter bootstrap có một lớp tập trung: .pagination-centre

Nó làm việc cho tôi để làm:

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

Css cho lớp là:

.pagination-centered {
  text-align: center;
}

18
Hoặc có thể .text-centerlớp học?
trejder

36

Bạn có thể sử dụng như sau. Nó hỗ trợ Bootstrap 3.x ở trên.

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

Cảm ơn vì điều đó. Chỉ cần những gì tôi cần ngày hôm nay.
Ryan Wilson

28

Giả sử không có gì khác ngoài hình ảnh, cách tốt nhất là sử dụng text-align: centertrong phần imggốc:

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

Biên tập

Như đã đề cập trong các câu trả lời khác, bạn có thể thêm lớp CSS bootstrap .text-centervào phần tử cha. Điều này thực hiện chính xác điều tương tự và có sẵn trong cả v2.3.3v3


Hoàn hảo - Đó là công việc. Nhưng nói rằng tôi có một phần tử <ul> bên dưới hình ảnh ... Điều này không căn chỉnh trung tâm như mong đợi, tôi có thể thêm bất cứ điều gì không? Cảm ơn
Fixer

1
Kể từ .row trong một trong các lớp cốt lõi trong twitter bootstrap. Tôi khuyên bạn nên xác định một lớp mới như trên trang này twitter.github.com/bootstrap/index.html với tiêu đề lớp.
baptme

1
@Fixer <ul>Trung tâm vẫn nên căn chỉnh: jsfiddle.net/N74N7/1 Phải có mã CSS khác ảnh hưởng đến nó
My Head Hurts

đã dành hơn 2 hoặc 3 giờ và chỉ dòng này ... cảm ơn!
alamin

18

Làm việc cho tôi. thử sử dụngcenter-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>

6

Tôi cần như vậy và ở đây tôi tìm thấy giải pháp:

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

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

và đến CSS:

[class*="span"].centred {
  margin-left: auto;
  margin-right: auto;
  float: none;
}

Tôi nghĩ mọi người bootstrap cần thêm nó vào css của họ
Muhammad Ahsan

Xin chào, và cảm ơn! Tôi đang sử dụng Bootstrap v3 bây giờ. Tôi đã thêm nó vào div container img của mình, vì vậy tôi phải chỉ định chiều rộng chính xác (ít nhất) cho div của mình để mọi thứ hoạt động. Nếu bạn không có thùng chứa hoặc kích cỡ hình ảnh khác nhau, hãy thêm lớp này vào hình ảnh của bạn.
Inan

1

Bạn có thể sử dụng thuộc tính lề với lớp img bootstrap.

.name-of-class .img-responsive { margin: 0 auto; }

1

Có vẻ như chúng ta có thể sử dụng một tính năng HTML5 mới nếu phiên bản trình duyệt không phải là vấn đề:

trong tệp HTML:

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

Và trong tệp CSS, chúng tôi viết:

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

Và do đó, div có thể là trung tâm hoàn hảo trong trình duyệt.


3
Lớp div của bạn được gọi là .centerBloc và tệp css của bạn hiển thị body.loadingDiv ...
Martin

Đã sửa ngay bây giờ @Martin
dtechplus

0

Bạn nên sử dụng

<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;
        }
}

0

Tôi đang sử dụng justify-content-centerlớp để một hàng trong một container. Hoạt động tốt với Bootstrap 4.

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

0

Tôi đã tạo cái này và thêm vào Site.css.

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

-3

Bạn có thể thay đổi CSS của giải pháp trước đây như sau:

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

Điều này nên tập trung tất cả các yếu tố trong cha mẹ divlà tốt.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.