2011-11-27 33 views
5

Tôi có cửa sổ bật lên chứa biểu mẫu ASP.NET, nhấp vào liên kết "Yêu cầu thông tin" và biểu mẫu xuất hiện.CSS Vertically & Horizontally Center Div

Tuy nhiên, các trang có liên kết "Yêu cầu thông tin" để kích hoạt cửa sổ bật lên có nhiều nội dung do đó cần phải cuộn để xem liên kết.

Tôi cần có div luôn được căn giữa nếu người dùng cuộn để đọc nội dung, nếu không, nếu họ không cuộn cửa sổ bật lên vẫn xuất hiện ở giữa màn hình.

div được đặt hoàn toàn, toàn bộ chiều rộng trang là 960px có lề được đặt thành 0 auto.

Trả lời

16

Nếu div có chiều rộng cố định và sử dụng height: (nếu width = 120px và height = 80px)

position: fixed; 
top: 50%; 
left: 50%; 
margin-left: -60px; /* negative half of the width */ 
margin-top: -40px; /* negative half of the height */ 
+1

Điều này đặt div xuống ở góc dưới cùng bên phải, không căn giữa. Bạn cần phải tạo ra các số âm. – Godwin

+0

bây giờ chúng âm tính ... – ninov

0

Sử dụng vị trí: cố định; cho điều này, sử dụng 0 cho đầu, trái, phải và dưới cùng, và cung cấp cho div một màn hình: ô bảng; cũng như thế này, thiết lập text-align: center; và dọc-align: giữa; sẽ làm cho mọi thứ bên trong xuất hiện chính xác ở giữa, mà không có hacks pixel chính xác như lề tiêu cực.

+0

Ok và những gì giá trị cho trái và hàng đầu? – Filth

+0

@JordyVialoux câu trả lời cập nhật. –

0

Nếu cửa sổ bật lên div của bạn có kích thước cố định sau đó bạn có thể sử dụng CSS này:

position: fixed; 
left: 0; 
top: 0; 
right: 0; 
bottom: 0; 
margin: auto; /* this requires a fixed size */ 

Nếu không, bạn phải đi xung quanh với màn hình: ô bảng; và những thứ tương tự.

0

Đây có phải là những gì bạn đang cố gắng làm không? http://jsfiddle.net/Hrwf8/

Chìa khóa ở đây là đặt kiểu trái và trên thành 50% và đặt lề trái và trên xuống còn âm một nửa chiều rộng và chiều cao của div. Điều này tất nhiên đòi hỏi bạn có một kích thước cố định cho div của bạn.