2015-10-11 16 views
8

Tôi biết về thủ thuật position:relativeposition:absolute để định vị một div tương ứng với cha mẹ của nó. Nhưng nếu div không phải là cha mẹ của nó và tôi muốn vị trí của nó liên quan đến điều đó? Tôi đang cố gắng thực hiện điều gì đó dọc theo những dòng đó.Đặt một div liên quan đến div khác không phải là cha mẹ của nó bằng cách sử dụng CSS

Tôi cũng biết về position:fixed để sửa lỗi div nhưng tôi đang tạo trang web đáp ứng và tôi muốn tránh điều đó. Tôi tìm thấy một câu hỏi ở đây mà đề cập đến bằng cách sử dụng jQuery để làm điều đó: How to position one element relative to another with jQuery? jQuery là cách duy nhất để làm điều đó? Nó có thể được thực hiện bằng cách sử dụng CSS không?

Tôi đã đặt một câu đố ở đây: http://jsfiddle.net/19bdpgsf/. Trong fiddle, tôi đang cố gắng để vị trí các yếu tố child2 liên quan đến các notparentdiv giống như nó đã được định vị tương đối với parent div. Có thể sử dụng chỉ css?

Cảm ơn.

+0

mà div bạn muốn xác định vị trí và nơi – imGaurav

+0

div child2 với res pect để notparentdiv giống như cách nó hiện đang được định vị đối với cha mẹ trong fiddle. Tôi đã đề cập rằng trong câu hỏi. – Akhoy

+0

http://jsfiddle.net/19bdpgsf/1/ một cái gì đó như thế này? – imGaurav

Trả lời

0

Bạn có thể sử dụng vị trí tuyệt đối (tương đối so với toàn bộ nội dung của trang), nhưng khác hơn là tôi không nghĩ có cách nào khác ngoài jQuery.

+0

Nhưng trong ví dụ của tôi, vị trí: tương đối đã được áp dụng cho div cha. Nó sẽ bỏ qua vị trí của cơ thể: tương đối. – Akhoy

0

Một cách khác nếu bạn không muốn sử dụng vị trí css sử dụng bù đắp jquery như dưới đây để xác định vị trí bạn div

var nonparent = $('.notParent'); 
 
var position = nonparent.offset(); 
 
$('.child1').offset({ 
 
    top: position.top, 
 
    left: position.left 
 
});
.notParent { 
 
    background-color: red; 
 
    padding: 20px; 
 
} 
 
.child2 { 
 
    background-color: yellow; 
 
} 
 
.child1 { 
 
    background-color: green; 
 
} 
 
.parent { 
 
    background-color: purple; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="notParent"> 
 
    not parent div 
 
</div> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<div class="parent"> 
 
    parent 
 
    <div class="child1">child1</div> 
 
    <div class="child2"> 
 
    child2 
 
    </div> 
 
</div>

Bạn có thể xác định vị trí một div bên trong một div mà không phải là cha mẹ với vị trí tương đối tuyệt đối như dưới đây

.notParent { 
 
    background-color: red; 
 
    position: relative; 
 
} 
 
.child2 { 
 
    background-color: yellow; 
 
    position: absolute; 
 
    top: 10px; 
 
} 
 
.child1 { 
 
    background-color: green; 
 
    top: 30px; 
 
} 
 
.parent { 
 
    background-color: purple; 
 
}
<div class="notParent"> 
 
    not parent div 
 
</div> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<div class="parent"> 
 
    parent 
 
    <div class="child1">child1</div> 
 
    <div class="child2"> 
 
    child2 
 
    </div> 
 
</div>

+0

Không phải như vậy. Bạn vừa xóa vị trí: tương đối đã tồn tại trong div cha. Tôi không muốn điều đó. – Akhoy

+0

bây giờ là tương đối của nó với div không phải là nonParent, không phải là mát mẻ? – imGaurav

+0

Nope :). Nếu tôi có các div khác liên quan đến div cha đó thì sao? Nó sẽ làm hỏng phong cách. – Akhoy

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