จะจัดกึ่งกลาง div ด้วย Bootstrap2 ได้อย่างไร?


84

http://twitter.github.com/bootstrap/scaffolding.html

ฉันลองเหมือนชุดค่าผสมทั้งหมด:

<div class="row">
  <div class="span7 offset5"> box </div>
</div>

หรือ

<div class="container">
  <div class="row">
    <div class="span7 offset5"> box </div>
  </div>  
</div>

เปลี่ยนช่วงและตัวเลขชดเชย ...

แต่ฉันไม่สามารถเอากล่องธรรมดาที่อยู่ตรงกลางหน้าได้อย่างสมบูรณ์แบบ :(

ฉันแค่ต้องการกล่องกว้าง 6 คอลัมน์ที่อยู่ตรงกลาง ...


แก้ไข:

ทำกับ

<div class="container">
  <div class="row" id="login-container">
    <div class="span8 offset2">
       box
    </div>
  </div>
</div>

แต่กล่องกว้างเกินไปมีวิธีใดบ้างที่ฉันสามารถทำได้ด้วย span7?

span7 offset2เพิ่มช่องว่างภายในช่องว่างด้านซ้ายspan7 offset3เพิ่มเติมทางด้านขวา ...


คุณต้องการจัดกึ่งกลางกล่องในแนวนอนบนหน้าหรือไม่? เนื่องจากcontainerชั้นเรียนทำเช่นนั้นอยู่แล้วจึงคิดว่าคุณอาจต้องการจัดกล่องที่เล็กลง หรือคุณต้องการจัดกึ่งกลางกล่องทั้งแนวนอนและแนวตั้งบนหน้า?
Andres Ilich

14
กล่องที่คุณพูด? . . . ที่นี่ในโลกของนักพัฒนาเราเรียกสิ่งนั้นว่า div
pythonian29033

คุณใช้ Bootstrap เวอร์ชันใด มันควรจะแสดงในชื่อเรื่องเนื่องจากคนที่ค้นหาสิ่งนี้จะจบลงที่นี่และเห็นรหัสที่ล้าสมัย
JGallardo

คำตอบ:


46

นอกเหนือจากการหดตัว div ที่ตัวเองไปขนาดที่คุณต้องการโดยการลดขนาดช่วงเช่นดังนั้น ... class="span6 offset3", class="span4 offset4"ฯลฯ ... สิ่งที่ง่ายเป็นstyle="text-align: center"ใน div ที่อาจมีผลที่คุณกำลังมองหา

คุณไม่สามารถใช้ span7 กับชุดออฟเซ็ตใด ๆ และกำหนดให้สแปนอยู่กึ่งกลางของหน้า (เนื่องจากช่วงรวม = 12)


12
พิจารณาคำตอบของ Zuhaib Ali text-align: center ไม่ทำงานสำหรับการจัดกึ่งกลางองค์ประกอบภายใน <div> คลาส offset * ไม่ได้อยู่กึ่งกลางส่วนประกอบอย่างแท้จริง เป็นเพียงการสร้างภาพลวงตาของการรวมศูนย์ คุณสามารถตรวจสอบได้โดยการปรับขนาดหน้าต่างและดูว่าส่วนประกอบไม่อยู่ตรงกลาง เมื่อคุณใช้วิธีการของ Zuhaib Ali ส่วนประกอบจะอยู่กึ่งกลาง
BigSauce

แทนที่จะเพิ่มการจัดรูปแบบอินไลน์ (style = "text-align: center") ให้เพิ่มคลาส "center-block" และรับเนื้อหาที่อยู่กึ่งกลางภายใน div ที่อยู่ตรงกลางของคุณ
Shawn Taylor

col-md-4 หรือ col-lg-4 เท่ากับ margin: 0 auto; เหรอ?
jruzafa

165

สแปนของ Bootstrap จะลอยไปทางซ้าย สิ่งที่ต้องทำเพื่อให้เป็นศูนย์กลางคือการลบล้างพฤติกรรมนี้ ฉันทำได้โดยเพิ่มสิ่งนี้ในสไตล์ชีตของฉัน:

.center {
     float: none;
     margin-left: auto;
     margin-right: auto;
}

หากคุณกำหนดคลาสนี้เพียงแค่เพิ่มลงในช่วงและคุณก็พร้อมที่จะไป

<div class="span7 center"> box </div>

โปรดทราบว่าคลาสศูนย์ที่กำหนดเองนี้ต้องถูกกำหนดหลังจาก bootstrap css คุณสามารถใช้ได้!importantแต่ไม่แนะนำ


5
ใช่! ขอบคุณ Zuhaib! ทำงานได้อย่างสมบูรณ์แบบ คำตอบนี้ควรได้รับการโหวตให้เป็นคำตอบที่ถูกต้องสำหรับคำถามนี้
BigSauce

@ZuhaibAli การเพิ่มfloat: none;แก้ไขปัญหาของฉัน
SIFE

1
ฉันใช้ Rails ดังนั้นฉันแค่ต้องการชี้ให้เห็นว่าใน application.css ให้เพิ่ม*= require bootstrap.min ก่อน *= require_selfและ*= require_tree

2
สิ่งนี้ไม่ได้ผลสำหรับฉัน แต่การเพิ่มdisplay: tableดูเหมือนจะแก้ไขได้
Peter Berg

1
ตอบโจทย์มาก! ทำงานกับสิ่งนี้ต่อจากนี้
serv-bot 22


20

หากคุณต้องการไปที่ full-bootstrap (ไม่ใช่ทางซ้าย / ขวาอัตโนมัติ) คุณต้องมีรูปแบบที่พอดีภายใน 12 คอลัมน์เช่น 2 ช่องว่าง 8 เนื้อหา 2 ช่องว่าง นั่นคือสิ่งที่การตั้งค่านี้จะทำ ครอบคลุมเฉพาะตัวแปร-md-ฉันมักจะย่อขนาดเต็มสำหรับขนาดเล็กโดยการเพิ่ม col-xs-12

<div class="container">
  <div class="col-md-8 col-md-offset-2">
     box
  </div>
</div>

นั่นเป็นวิธีที่ถูกต้องในการตั้งศูนย์ div ใน boostrap หรือไม่
Gavindra Kalikapersaud

1
เนื้อหาของ div ไม่ได้อยู่กึ่งกลาง แต่ div นั้นเอง
Craig

8

ดูเหมือนว่าคุณต้องการจัดกึ่งกลางคอนเทนเนอร์เดียว เฟรมเวิร์ก bootstrap อาจซับซ้อนเกินไปตัวอย่างหนึ่งคุณอาจมี div แบบสแตนด์อโลนที่มีสไตล์ของคุณเองเช่น:

<div class="login-container">
  <!-- Your Login Form -->
</div>

และสไตล์:

.login-container {
  margin: 0 auto;
  width: 400px; /* Whatever exact width you are looking for (not bound by preset bootstrap widths) */
}

วิธีนี้จะใช้งานได้ดีหากคุณซ้อนอยู่ที่ไหนสักแห่งภายใน bootstrap .containerdiv


3

เพิ่มเนื้อหากลางชั้นเรียน

/** Center the contents of the element **/
.centercontents {
    text-align: center !important;
}

0

รหัส @ZuhaibAli ทำงานให้ฉัน แต่ฉันเปลี่ยนมันเล็กน้อย:

ฉันสร้างคลาสใหม่ใน css

.center {
     float: none;
     margin-left: auto;
     margin-right: auto;
}

จากนั้น div จะกลายเป็น

<div class="center col-md-6"></div>

ฉันเพิ่ม col-md-6 สำหรับความกว้างของ div เองซึ่งในสถานการณ์นี้หมายความว่า div มีขนาดครึ่งหนึ่งมี 1 -12 col md ใน bootstrap



0

ห่อ div ใน div หลักด้วยคลาสrowจากนั้นเพิ่มสไตล์margin:0 auto;ให้กับ div

<div class="row">
  <div style="margin: 0 auto;">center</div>
</div>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.