ปุ่มศูนย์ CSS


86

ปัญหาการตั้งศูนย์ CSS โดยทั่วไปไม่ได้ผลสำหรับฉันปัญหาคือฉันไม่ทราบความกว้าง px ที่เสร็จสิ้นแล้ว

ฉันมี div สำหรับการนำทางทั้งหมดแล้วแต่ละปุ่มภายในพวกเขาจะไม่อยู่ตรงกลางอีกต่อไปเมื่อมีปุ่มมากกว่าหนึ่งปุ่ม :(

CSS

.nav{
    margin-top:167px;
    width:1024px;
    height:34px;
}

.nav_button{
    height:34px;
    margin:0 auto;
    margin-right:10px;
    float:left;
}

HTML

<div class="nav">
        <div class="nav_button">
            <div class="b_left"></div>
            <div class="b_middle">Home</div>
            <div class="b_right"></div>

        </div>
        <div class="nav_button">
            <div class="b_left"></div>
            <div class="b_middle">Contact Us</div>
            <div class="b_right"></div>

        </div>
</div>

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก. ขอบคุณ


ผลลัพธ์

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

วิธีที่ดีที่สุดคือวางไว้ในตาราง

<table class="nav" align="center">
    <tr>
      <td>
        <div class="nav_button">
            <div class="b_left"></div>
            <div class="b_middle">Home</div>
            <div class="b_right"></div>
        </div>

        <div class="nav_button">
            <div class="b_left"></div>
            <div class="b_middle">Contact Us</div>
            <div class="b_right"></div>
        </div>
      </td>
    </tr>
  </table>

คำตอบ:


202

ฉันรู้ว่านี่เป็นคำถามที่เก่ามาก แต่วันนี้ฉันเจอปัญหานี้และได้ผลแล้ว

<div style="text-align:center;">
    <button>button1</button>
    <button>button2</button>
</div>

ไชโยมาร์ค


โปรดทราบว่าองค์ประกอบอื่นที่มีลักษณะลอยไปทางขวา / ซ้ายใกล้กับองค์ประกอบนี้อาจทำให้สิ่งนี้ดูเหมือนไม่อยู่ตรงกลาง
shlgug

1
ฉันเชื่อว่าคุณพูดถูก แต่มีเหตุผลที่จะไม่ทำ<input class="btn btn-primary" style="text-align:center;display:block;" type="submit" value="{% trans 'ButtonPurpose' %}" />
RobotHumans

30

พิจารณาเพิ่มสิ่งนี้ใน CSS ของคุณเพื่อแก้ไขปัญหา:

button {
    margin: 0 auto;
    display: block;
}

4
คำตอบที่ดีที่สุด ไม่มีภาชนะภายนอก (อาจ) ไม่มีข้อบกพร่อง
Konrad Gałęzowski

23

อีกทางเลือกหนึ่งที่ดีคือการใช้:

width: 40%;
margin-left: 30%;
margin-right: 30%

มันใช้งานได้ (และ mekes sense) สำหรับ UI วัสดุถ้าปุ่มอยู่เพียงปุ่มเดียวใน a<Grid item>...</Grid>
Juan Salvador

โอ้ความคิดที่ดี :)
Martin Volek

10

ปัญหาเกิดจากบรรทัด CSS ต่อไปนี้บน.nav_button:

margin: 0 auto;

วิธีนี้จะใช้ได้ผลก็ต่อเมื่อคุณมีปุ่มเดียวนั่นคือสาเหตุที่ปุ่มเหล่านั้นไม่อยู่ตรงกลางเมื่อมีnav_buttonDiv มากกว่าหนึ่ง

หากคุณต้องการให้ปุ่มทั้งหมดอยู่ตรงกลางnav_buttonsใน div อื่น:

<div class="nav">
    <div class="centerButtons">
        <div class="nav_button">
            <div class="b_left"></div>
            <div class="b_middle">Home</div>
            <div class="b_right"></div>
        </div>
        <div class="nav_button">
            <div class="b_left"></div>
            <div class="b_middle">Contact Us</div>
            <div class="b_right"></div>
        </div>
    </div>
</div>

และจัดสไตล์ด้วยวิธีนี้:

.nav{
    margin-top:167px;
    width:1024px;
    height:34px;
}

/* Centers the div that nests the nav_buttons */
.centerButtons {
    margin: 0 auto;
    float: left;
} 

.nav_button{
    height:34px;
    margin-right:10px;
    float: left;
}

2
ขอบคุณสำหรับโพสต์ของคุณน่าเสียดายที่ใช้ไม่ได้เช่นกัน แต่ยังคงอยู่ทางด้านซ้ายทั้งหมด
Stevanicus

ใช่ฉันเพิ่งตระหนักว่า เป็นเพราะ. centerButtons เป็นองค์ประกอบบล็อกและใช้พื้นที่ทั้งหมดใน. nav ทำให้คุณสมบัติระยะขอบไม่มีประโยชน์ ฉันพยายามแก้ไขโดยลอย. centerButtons เช่นกัน แต่โชคไม่ดี
Espresso

ใช่ฉันรู้ว่ามันยุ่งยากทำให้ฉันรำคาญเพราะฉันเคยทำมาก่อน แต่จำวิธีไม่ได้ :) .... มีความคิดอย่างไร
Stevanicus


-1

เมื่อทุกอย่างล้มเหลวฉันก็แค่

<center> content </center>

ฉันรู้ว่ามันไม่ "ถึงมาตรฐาน" อีกต่อไป แต่ถ้ามันใช้งานได้มันก็ใช้ได้


12
คำตอบนี้ไม่ได้เพิ่มอะไรให้กับคำตอบอื่น ๆ <center>เลิกใช้แล้วใน HTML4 และไม่ได้รับการสนับสนุนใน HTML5 ซึ่งหมายความว่าอาจใช้ไม่ได้หากใช้ HTML5
Magnilex

1
ฉันจะใช้มันถ้าฉันไม่สามารถทำงานอย่างอื่นได้เท่านั้น ฉันใช้มันในหน้าที่มี html5 แต่ไม่ต้องการ ฉันได้ผ่านไปและแทนที่สิ่งที่ฉันได้ด้วย<div align="center">button</div>
จับไต๋

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