2010-07-03 35 views

Trả lời

115

Khi bạn đã chỉ định width trên đối tượng mà bạn đã áp dụng margin: 0 auto cho, đối tượng sẽ nằm ở giữa trong vùng chứa chính.

Chỉ định auto làm thông số thứ hai về cơ bản cho trình duyệt tự động xác định lề trái và lề phải bằng cách đặt chúng bằng nhau. Nó đảm bảo rằng lề trái và phải sẽ được đặt ở cùng kích thước. Tham số đầu tiên 0 cho biết bên lề trên và dưới cả hai sẽ được thiết lập để 0.

margin-top:0; 
margin-bottom:0; 
margin-left:auto; 
margin-right:auto; 

Vì vậy, để cung cấp cho bạn một ví dụ , nếu phụ huynh là 100px và đứa trẻ là 50px, sau đó các auto bất động sản sẽ xác định rằng có 50px không gian miễn phí để chia sẻ giữa margin-leftmargin-right:

var freeSpace = 100 - 50; 
var equalShare = freeSpace/2; 

nào sẽ cung cấp cho:

margin-left:25; 
margin-right:25; 

Hãy xem số jsFiddle này. Bạn không phải chỉ định chiều rộng của cha, chỉ chiều rộng của đối tượng con.

+0

nhưng chúng tôi không bao giờ định nghĩa bất kỳ chiều rộng nào cho 'body' và chúng tôi luôn cung cấp' width' và 'margin: 0 auto' cho' # wrapper' –

+0

ok rồi lề giữa thân và đối tượng sẽ được tính tự động theo trình duyệt. –

+0

Có giá trị tương tự nào trong '%' không? Tôi có nghĩa là có bất kỳ tài sản khác trong css mà có thể cho kết quả tương tự như trái và phải 'auto' –

9

tự động: Trình duyệt đặt lề. Kết quả của việc này là phụ thuộc vào trình duyệt

margin: 0 auto định

* top and bottom margins are 0 
* right and left margins are auto 
7

Từ đặc điểm kỹ thuật CSS trên Calculating widths and margins for Block-level, non-replaced elements in normal flow:

Nếu cả hai 'margin-left' và 'margin-right 'là' tự động ', giá trị được sử dụng của chúng bằng nhau. Điều này theo chiều ngang trung tâm phần tử đối với các cạnh của khối chứa.

+0

"giá trị được sử dụng của chúng bằng nhau" phương tiện này là gì? –

+3

@ metal-gear-solid - Nếu chiều rộng của cha mẹ (xác định bởi trình duyệt hoặc theo chiều rộng được chỉ định) là 100px và chiều rộng của div con là 50px. Sau đó, lề: 0 tự động sẽ xác định rằng có 50px không gian có sẵn. Sau đó nó sẽ chia cho 2, cho 25. Lề trái và phải sau đó được đặt thành 25, tức là các giá trị được đặt bằng nhau. – GenericTypeTea

+1

Giá trị được sử dụng chỉ các giá trị thực tế được sử dụng tùy thuộc vào các thuộc tính trực quan thực tế của phần tử sử dụng thuộc tính này và khối chứa của nó. Phần liên kết có công thức được sử dụng để tính toán sự khác biệt theo chiều ngang giữa phần tử và khối chứa của nó. Sự khác biệt đó sau đó được tách ra bằng nhau và được sử dụng như các giá trị lề thực tế ngang. – Gumbo

1
margin:0 auto; 

0 là dành cho top-bottom và auto cho trái bên phải. Điều đó có nghĩa là lề trái và phải sẽ lấy lề tự động theo chiều rộng của phần tử và chiều rộng của vùng chứa.

Nói chung nếu bạn muốn đặt bất kỳ phần tử nào ở vị trí trung tâm thì margin:auto hoạt động hoàn hảo. Nhưng nó chỉ hoạt động trong các phần tử khối.

0
margin-top:0; 
margin-bottom:0; 
margin-left:auto; 
margin-right:auto; 

0 là từ trên xuống và tự động cho trái-phải. Trình duyệt đặt lề.

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