2010-09-27 26 views
19

Tôi đã thử:Có một css tương đương với 'align = "center"' không?

margin-left: auto; 
margin-right: auto; 

Nhưng nó không tập trung vào các yếu tố trong ô bảng của tôi. Tôi có kết hợp văn bản và các yếu tố <span> trong số <td> s.

Khi tôi đặt 'align = "center"' trong bất kỳ phần tử <td> nào, nó sẽ căn giữa.

Làm cách nào để đạt được điều này trong biểu định kiểu?

Btw, khi tôi làm text-align: center hoạt động cho văn bản. Nhưng không phải cho các yếu tố khác như <span> s.

Edit:

Tuổi có lớp sau, nếu có ảnh hưởng đến vấn đề liên kết:

.dot { 
    display: block; 
    width: 10px; 
    height: 10px; 
    background: #333; 
    -moz-border-radius: 5px; 
    -webkit-border-radius: 5px; 
    -khtml-border-radius: 5px; 
} 
+2

Lưu ý: 'lề: 0 tự động;' thực hiện điều tương tự trong ít dòng mã – jcolebrand

+0

Cảm ơn @drachenstern.Luôn tìm cách để giảm bớt mã không cần thiết :) – marcamillion

+0

@drachenstern: Không, nó không được chứng minh: http://jsfiddle.net/pzRPA/11/ và http://jsfiddle.net/pzRPA/10/ – Crozin

Trả lời

22

margin:0 auto; sẽ làm việc trên

  • khối mức không nổi, tĩnh/yếu tố vị trí tương đối với một chiều rộng rõ ràng thiết
  • yếu tố chiều rộng nội tại như images/đối tượng/bảng

text-align:center sẽ hoạt động trên

  • inline/inline-block

Đối với tình hình của bạn, bạn có lẽ có thể làm ..

#container { text-align:center; } 
#container span.block-level-spans { margin: 0 auto; } 

hay làm cho nhịp bên inline-block thay vì block.

EDIT:

Inline-block: Giá trị này gây ra một yếu tố để tạo ra một hộp khối, mà chính nó là chảy như một hộp inline duy nhất, tương tự đến một yếu tố thay thế. Bên trong của một khối nội tuyến được định dạng là một hộp khối và chính phần tử đó là được định dạng thành phần tử thay thế nội tuyến .

+0

Tuyệt vời .... làm cho nhịp 'inline-block' và thêm rằng span-block-level-spans selector dường như đã thực hiện các trick. Kinh ngạc! Bạn có thể cung cấp một liên kết như những gì 'block-level-spans' không và tại sao nó hoạt động? Cảm ơn. – marcamillion

+1

Cần lưu ý rằng 'margin: 0 auto' không hoạt động trên IE trừ khi bạn buộc nó vào chế độ tuân thủ tiêu chuẩn (được gọi là) bằng cách sử dụng' DOCTYPE', đó là điều bạn nên làm. – cletus

+0

Một khối nội tuyến về cơ bản là một phần tử nội tuyến được phép nhận chiều rộng/chiều cao. Nó giống như một chiếc phao ngoại trừ bạn không phải lo lắng về nó. Nó có thể được đưa thẳng đứng. Đôi khi bạn phải chỉ định 'top' nếu nó không sắp xếp chính xác đến đỉnh. –

-3

Tôi đã làm một tìm kiếm nhanh trên google và thấy điều này:

tuổi là một inline và do đó không thể căn chỉnh được. Đặt nó thành một p hoặc một số div thay vì một khoảng, hoặc rõ ràng làm cho mức khối ngang bằng cách sử dụng màn hình : chặn.

Tìm thấy tại: Velocity Reviews Forumn Link

+0

Hơn nữa trong bài viết đó có thêm thông tin, cụ thể: văn bản căn chỉnh văn bản trong phạm vi. Vì khoảng cách chỉ có chiều rộng là như văn bản, nên việc căn giữa văn bản đó không có hiệu lực. Để căn giữa nhịp bạn cần áp dụng căn chỉnh văn bản: trung tâm; cho bất kỳ thành phần cấp khối nào là phụ huynh của span. – PatrickV

+0

ĐÁNH GIÁ các bài đăng chất lượng thấp: Không! Thảo luận được tham chiếu là từ năm 2005. CSS cho phép bạn thay đổi hoàn toàn ngoại hình của phần tử. – ElmoVanKielmo

Các vấn đề liên quan