Trung tâm nút


85

Vấn đề căn giữa CSS thông thường, chỉ không hoạt động với tôi, vấn đề là tôi không biết chiều rộng px đã hoàn thành

Tôi có một div cho toàn bộ điều hướng và sau đó là từng nút bên trong, chúng không căn giữa nữa khi có nhiều hơn một nút. :(

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>

Mọi sự trợ giúp sẽ rất được trân trọng. Cảm ơn


Kết quả

Nếu chiều rộng không xác định, tôi đã tìm cách căn giữa các nút, không hoàn toàn hài lòng nhưng không thành vấn đề, nó hoạt động: D

Cách tốt nhất là đặt nó trong một cái bàn

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

Câu trả lời:


201

Tôi nhận ra đây là một câu hỏi rất cũ, nhưng tôi đã tình cờ gặp vấn đề này hôm nay và tôi đã giải quyết

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

Chúc mừng, Mark


Lưu ý rằng một phần tử khác có kiểu float phải / trái gần phần tử này có thể làm cho phần tử này xuất hiện lệch tâm.
shlgug

1
Tôi tin rằng bạn nói đúng, nhưng có lý do gì để không làm vậy<input class="btn btn-primary" style="text-align:center;display:block;" type="submit" value="{% trans 'ButtonPurpose' %}" />
RobotHumans

26

Hãy xem xét thêm điều này vào CSS của bạn để giải quyết vấn đề:

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

4
Câu trả lời tốt nhất. Không có hộp đựng bên ngoài, (có thể) không có nhược điểm.
Konrad Gałęzowski

23

Một tùy chọn tốt khác là sử dụng:

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

Nó hoạt động (và mekes ý nghĩa) cho Material UI, nếu nút duy nhất là một bên trong một<Grid item>...</Grid>
Juan Salvador

Ồ, ý kiến ​​hay :)
Martin Volek

10

Vấn đề là với dòng CSS sau trên .nav_button:

margin: 0 auto;

Điều đó sẽ chỉ hoạt động nếu bạn có một nút, đó là lý do tại sao chúng bị lệch tâm khi có nhiều hơn một nav_buttondiv.

Nếu bạn muốn tất cả các nút của mình được căn giữa nav_buttonsvào trong một div khác:

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

Và tạo kiểu theo cách này:

.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
cảm ơn vì bài viết của bạn, tiếc là nó cũng không hoạt động, vẫn còn tất cả ở bên trái.
Stevanicus

Vâng, tôi vừa nhận ra điều đó. Đó là bởi vì .centerButtons là một phần tử khối và nó chiếm toàn bộ không gian trong .nav, làm cho các thuộc tính lề trở nên vô dụng. Tôi cũng đã cố gắng sửa nó bằng cách nổi .centerButtons, nhưng không may mắn.
Espresso

yea tôi biết một điều khó khăn của nó, làm phiền tôi vì tôi đã làm nó trước đây nhưng không thể nhớ làm thế nào:) .... bất kỳ ý tưởng?
Stevanicus

1

Hãy xem xét thêm điều này vào CSS của bạn để giải quyết vấn đề:

.btn {
  width: 20%;
  margin-left: 40%;
  margin-right: 30%;
}

-1

khi mọi thứ khác thất bại, tôi chỉ

<center> content </center>

Tôi biết nó không "đạt tiêu chuẩn" nữa, nhưng nếu nó hoạt động, nó sẽ hoạt động


12
Câu trả lời này không thêm bất cứ điều gì vào các câu trả lời khác. <center>đã không được chấp nhận trong HTML4 và thậm chí không được hỗ trợ trong HTML5, có nghĩa là nó có thể sẽ không hoạt động nếu HTML5 được sử dụng.
Magnilex

1
Tôi chỉ sử dụng nó nếu tôi không thể làm việc gì khác. Tôi đã sử dụng nó trong các trang có html5 nhưng không muốn. Tôi đã trải qua và thay thế những gì tôi có thể bằng<div align="center">button</div>
ott 29/10/13

Thẻ không được dùng nữa, thực tế là không tốt khi sử dụng nó
Sunchock
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.