2012-03-28 20 views
12

Nếu tôi có 2 thẻ div:CSS: Làm thế nào để thực hiện một khối div * không * mất không gian trong thùng chứa mẹ

<div id="parentDiv"> 
    <div id="childDiv"><!-- other html --></div> 
    <!-- parent div html --> 
</div> 

Tôi muốn các nội dung của <div id="childDiv"> để chồng chéo nội dung <!-- parent div html -->.

Lý do (trong trường hợp này có vẻ như thiết kế mã xấu cho bất kỳ ai): Tôi cần giải pháp khắc phục sự cố trong các trang web của google, tôi không thể thêm mã tùy chỉnh trên thanh điều hướng bên, chỉ trong không gian html chính, tôi muốn thả nổi div không có không gian và tương đối vị trí nó trên thanh bên để có được xung quanh giới hạn buộc.

Tôi có thể thực hiện mọi thứ ngoại trừ việc dừng childDiv để chiếm không gian trong vùng chứa trang chính bị bẻ khóa.

+1

bạn có thể đăng css mà bạn đang làm việc với, có thể là một jsfiddle không? – superUntitled

Trả lời

12

Bạn có thể cho nó một vị trí tuyệt đối và điều hướng nó với lề.

 

    #childDiv { 
     position: absolute; 
     margin-top: -100px; 
     margin-left: -100px; 
    } 

+0

Đó là những gì tôi cũng sẽ thử – Zwik

+0

cũng CẢM ƠN BẠN! – Midhat

+0

Bạn cũng cần phải 'vị trí: tương đối' cha mẹ – Xavier

2

Bạn phải bỏ chặn trẻ em ra khỏi luồng. Cách tốt nhất để làm điều này là position: absolute trên trẻ em divposition: relative trên bố mẹ div.

+0

'vị trí: tương đối' trên cha mẹ là chìa khóa. Nếu không, đứa trẻ sẽ "chụp" vào vị trí tổ tiên. Cảm ơn! – Xavier

5

Làm thế nào về một đơn giản

#childDiv {height:0; overflow:visible;}

Nhưng có lẽ bạn muốn nó có một màu nền, hm? Hm.

+0

ý tưởng thiên tài! thanks –

3
#parentDiv { 
    position: relative; 
} 
#childDiv { 
    position:absolute; 
    top:0; 
    left:0; 
    width:100%; 
} 

Nếu bạn cần phải bump nội dung xung quanh, hoặc chồng chéo thứ mà là 'bên ngoài' của thanh bên, bạn có thể sử dụng lợi nhuận tiêu cực để tăng chiều rộng của childDiv hoặc di chuyển nó lên (để trang trải đệm hoặc lề bạn không thể ghi đè).

Nếu bạn cần làm cho #childDiv bao phủ toàn bộ #parentDiv, bạn có thể sử dụng một chút JavaScript để đặt chiều cao tối thiểu trên childDiv, sau đó thêm nền màu hoặc nội dung nào đó để che bất kỳ nội dung nào.

var parentHeight = jQuery('#parentDiv').height(); 
jQuery('#childDiv').css('min-height',parentHeight + 'px'); 
Các vấn đề liên quan