วิธีจัดแนวศูนย์กลางภาพที่ตายแล้วด้วย bootstrap


207

ฉันใช้เฟรมเวิร์ก bootstrap และพยายามทำให้รูปภาพอยู่กึ่งกลางแนวนอนโดยไม่สำเร็จ ..

ฉันได้ลองเทคนิคต่าง ๆ เช่นการแยกระบบ 12 กริดใน 3 บล็อกเท่ากัน

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

วิธีที่ง่ายที่สุดในการทำให้ภาพอยู่กึ่งกลางสัมพันธ์กับหน้าคืออะไร


และ btw คุณอาจต้องการดู "ส่วนคอลัมน์" - ส่วน twitter.github.com/bootstrap/scaffolding.html#gridSystem
mind85

มีคนติดธงว่านี่ไม่ใช่คำตอบและฉันเห็นด้วย โปรดเพิ่มสิ่งนี้เป็นความคิดเห็นและคำตอบของคุณจะถูกลบในไม่ช้า
tckmn

1
หากคุณมีimg-responsiveคลาสบนimgแท็กรูปภาพอาจไม่อยู่กึ่งกลาง ดูคำตอบ SO นี้สำหรับคำอธิบายว่าทำไมการใช้center-blockคลาสบูทสแตรปจะแก้ปัญหานั้นในแบบบูทสแตรป
cssyphus

หากคุณใช้ bootstrap คุณสามารถทำได้: stackoverflow.com/a/59469712/4654957
Diego Venâncio

คำตอบ:


271

Twitter Bootstrap v3.0.3 มีคลาส: center-block

บล็อกเนื้อหากลาง

ตั้งค่าองค์ประกอบที่จะแสดง: บล็อกและกึ่งกลางผ่านระยะขอบ มีทั้งมิกซ์อินและคลาส

เพียงแค่ต้องเพิ่มคลาส.center-blockในimgแท็กดูเหมือนว่านี้

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

ใน Bootstrap มีการเรียกลักษณะ css อยู่แล้ว. center-block

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

คุณสามารถดูตัวอย่างได้จากที่นี่


1
</div>แท็กปิดในcontainerdiv ดูเหมือนจะหายไป สิ่งนี้ใช้ไม่ได้กับฉันใน v3.3.7
tarabyte

141

วิธีที่ถูกต้องในการทำเช่นนี้คือ

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

25
สิ่งนี้ไม่ได้ผลสำหรับฉันเมื่อใช้กับสิ่งนี้ - startbootstrap.com/round-about .. แต่การเพิ่มคลาสcenter-blockให้กับ<img>องค์ประกอบทำงานได้ ..
Sumeet Pareek

3
ศูนย์ข้อความจะไม่ทำงานกับรูปภาพที่มีระดับตอบสนอง img แต่ความคิดเห็นด้านบน (เกี่ยวกับจุดศูนย์กลางบล็อก) จะช่วยแก้ปัญหานี้ได้
โทรจัน

ข้อสังเกต: ใน Bootstrap v3.1.0 มีความเป็นไปได้ที่จะจัดกึ่งกลาง img-responsive ในคอลัมน์โดยการเพิ่ม text-center ลงในคอลัมน์ พฤติกรรมนี้ใช้งานไม่ได้ใน v3.3.4 น่ารำคาญมาก Css ดูด
f470071

คุณควรใช้ block-center แทนดังที่ได้กล่าวไว้ในเอกสาร: getbootstrap.com/css/#images-responsive
Nacho

95

อัปเดต 2018

center-blockชั้นไม่มีอยู่ในBootstrap 4 หากต้องการจัดกึ่งกลางภาพใน Bootstrap 4 ให้ใช้mx-auto d-block...

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

6
เพียงเพิ่มคำอธิบายเล็กน้อยเพื่อ 'อัปเดต 2018': mx-auto ตั้งค่าระยะขอบซ้ายและขวาเป็นอัตโนมัติ ชุด d-block แสดง: บล็อก
Michael Moriarty

85

เพิ่ม 'center-block' ให้กับรูปภาพเป็นคลาส - ไม่จำเป็นต้องใช้ CSS เพิ่มเติม

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

8
ไม่แน่ใจว่าทำไม -1 - นี่เป็นคำตอบที่ไกลที่สุด! มันใช้คลาสตัวช่วยสร้างเป็น Bootstrap
2562923

4
ใน bootstrap 4 ให้ใช้mx-autoแทนcenter-block
Quantum7

52

Twitter bootstrap มีคลาสที่จัดกึ่งกลาง: .pagination-centered

มันทำงานให้ฉันทำ:

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

CSS สำหรับชั้นเรียนคือ:

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

18
หรืออาจจะเป็น.text-centerคลาส?
trejder

36

คุณสามารถใช้สิ่งต่อไปนี้ รองรับ Bootstrap 3.x ด้านบน

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

ขอบคุณสำหรับสิ่งนี้. สิ่งที่ฉันต้องการในวันนี้
Ryan Wilson

28

สมมติว่าไม่มีสิ่งอื่นใดควบคู่กับภาพวิธีที่ดีที่สุดคือใช้text-align: centerในพาเรนต์img:

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

แก้ไข

ดังที่กล่าวไว้ในคำตอบอื่น ๆ คุณสามารถเพิ่มคลาส bootstrap CSS .text-centerในองค์ประกอบหลัก สิ่งนี้ทำสิ่งเดียวกันและมีให้ในv2.3.3และv3


สมบูรณ์แบบ - นั่นทำงานได้ดี แต่บอกว่าฉันมีองค์ประกอบ <ul> ใต้ภาพ ... นี่ไม่จัดกึ่งกลางอย่างที่คาดไว้มีอะไรที่ฉันสามารถเพิ่มได้หรือไม่ ขอบคุณ
ผู้ให้บริการ

1
ตั้งแต่ .row ในหนึ่งในคลาสหลักใน bootstrap twitter ฉันขอแนะนำให้กำหนดคลาสใหม่เช่นเดียวกับในหน้านี้twitter.github.com/bootstrap/index.htmlด้วยโฆษณาด้านบนของชั้น
baptme

1
@Fixer <ul>ควรยังคงจัดศูนย์: jsfiddle.net/N74N7/1จะต้องมีรหัส CSS อื่น ๆ ที่มีผลต่อมัน
My Head Hurts

ใช้เวลามากกว่า 2 หรือ 3 ชั่วโมงและมีเพียงสายนี้ ... ขอบคุณ!
alamin

18

ได้ผลสำหรับฉัน ลองใช้center-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

ฉันต้องการสิ่งเดียวกันและที่นี่ฉันพบวิธีแก้ปัญหา:

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

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

และ CSS:

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

ฉันคิดว่าคน bootstrap ต้องเพิ่มลงใน css ของพวกเขา
Muhammad Ahsan

สวัสดีและขอบคุณ! ตอนนี้ฉันใช้ Bootstrap v3 ฉันเพิ่มสิ่งนี้ลงใน img คอนเทนเนอร์ div ของฉันดังนั้นฉันต้องระบุความกว้างที่แน่นอน (อย่างน้อย) เพื่อให้ div ของฉันทำงานได้ หากคุณไม่มีคอนเทนเนอร์หรือขนาดรูปภาพที่แตกต่างกันให้เพิ่มคลาสนี้ในรูปภาพของคุณ
Inan


1

ดูเหมือนว่าเราสามารถใช้คุณสมบัติ HTML5 ใหม่ได้หากเวอร์ชันของเบราว์เซอร์ไม่มีปัญหา:

ในไฟล์ HTML:

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

และในไฟล์ CSS เราเขียน:

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

และเพื่อให้ div สามารถอยู่กึ่งกลางในเบราว์เซอร์


3
ระดับ div ของคุณเรียกว่า. centerBloc และแสดงไฟล์ css ของคุณ body.loadingDiv ...
Martin

แก้ไขตอนนี้ @Martin
dtechplus

0

คุณควรใช้

<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

ฉันใช้justify-content-centerคลาสต่อแถวภายในคอนเทนเนอร์ ทำงานได้ดีกับ Bootstrap 4

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

0

ฉันสร้างสิ่งนี้และเพิ่มลงใน Site.css

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

-3

คุณสามารถเปลี่ยน CSS ของโซลูชันก่อนหน้าได้ดังนี้:

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

สิ่งนี้ควรจัดองค์ประกอบทั้งหมดให้อยู่กึ่งกลางใน parent divเช่นกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.