2013-02-13 31 views
10

Tôi đã dành một chút thời gian để tạo ra một phả hệ trong số các lớp div trên this site và tôi nhận được tất cả các liên kết độc đáo.DIV di chuyển khi tôi đặt văn bản trong đó

Nhưng khi tôi đặt văn bản trong đó, cho dù chỉ trong thẻ div hoặc trong thẻ p, nó sẽ di chuyển lớp div xuống đáng kể.

Nó dường như không thêm bất kỳ lề hoặc đệm hoặc bất cứ điều gì khác tôi có thể nhìn thấy trong khi kiểm tra các yếu tố, và nó dường như không ảnh hưởng đến các lớp div cháu.

JSFiddle

HTML:

<div id="pedigree"> 
    <div id="parentwrap"> 
     <div class="parent">test</div> 
    </div> 
    <div id="childwrap"> 
     <div class="child"> 
      <p>Am. Ch. Kenai's Aldebaran</p> 
     </div> 
     <div class="child"> 
      <p>pAm. Ch. Santa Clara Del Viento</p> 
     </div> 
    </div> 
    <div id="grandchildwrap"> 
     <div class="grandchild">Am. Can. Ch. Ryzann's Eclipse at Kenai</div> 
     <div class="grandchild">Am. Ch. Timber Ridge's Abi of Kenai</div> 
     <div class="grandchild">Am. Ch. Sky Run Gavril Virtual Zip JC</div> 
     <div class="grandchild">Am. Can. Ch. Tazeb's Zena</div> 
    </div> 
</div> 

CSS:

#pedigree { 
    position: relative; 
    width: 584px; 
    height: 204px; 
    margin: 0 auto; 
    margin-top: 15px; 
    padding-bottom: 15px; 
    border-bottom: 1px dotted black; 
} 
#parentwrap { 
    position: relative; 
    display: inline-block; 
    margin: 0; 
    width:auto; 
    height: 205px; 
} 
.parent { 
    position: relative; 
    width: 190px; 
    height: 202px; 
    margin: 0px; 
    padding: 0px; 
    border: 1px solid black; 
} 
#childwrap { 
    position: relative; 
    display: inline-block; 
    margin: 0; 
    width: auto; 
    height: 205px; 
} 
.child { 
    position: relative; 
    width: 190px; 
    height: 95px; 
    margin: 0px; 
    padding: 0px; 
    border: 1px solid black; 
    margin-bottom: 10px; 
} 
#grandchildwrap { 
    position: relative; 
    display: inline-block; 
    width: auto; 
    height: 205px; 
} 
.grandchild { 
    position: relative; 
    width: 190px; 
    height: 46px; 
    margin: 0px; 
    padding: 0px; 
    border: 1px solid black; 
    margin-bottom: 4px; 
} 
.parent, .child, .grandchild { 
    -moz-border-radius: 35px; 
    border-radius: 35px; 
+2

Xem [Nội dung nào đó trên trang web của tôi không hoạt động. Tôi có thể dán liên kết vào nó không?] (Http://meta.stackexchange.com/questions/125997/something-on-my-web-site-doesnt-work-can-i-just-paste-a-link -to-it) – Quentin

+0

Không liên quan, nhưng bản sao trên trang web của bạn bị lỗi chính tả/ngữ pháp. Hãy nhớ sửa lỗi này! –

+0

điểm lấy sẽ thêm mã – user1595170

Trả lời

23

Thêm văn bản tạo ra một cơ sở cho các div #parentwrap, vì vậy div được liên kết đến đó. Không có văn bản, không có đường cơ sở để div có chế độ bố cục dự phòng.

Để khắc phục, hãy đặt thêm #parentwrap { vertical-align:top; }

+0

tôi đã tự hỏi nếu nó có thể là một vấn đề liên kết nhưng tôi không hiểu tại sao nó sẽ được (do đó hỏi thay vì đoán - tốt hơn để hiểu tại sao) không im chắc chắn lý do tại sao nó tạo ra một đường cơ sở ở đó theo mặc định, có vẻ khá vô dụng nhưng có thực sự cố định vấn đề của tôi vì vậy cảm ơn bạn rất nhiều thực sự. Thật tuyệt vời khi có một cộng đồng tuyệt vời như vậy. – user1595170

+0

@Alohci bạn có thể giải thích hay cho tôi liên kết giải thích "đường cơ sở". – Nix

+0

@Nix - Nó thực sự. Các quy tắc chính xác để căn chỉnh với đường cơ sở, mặc định là ở đây: http://www.w3.org/TR/CSS21/visudet.html#propdef-vertical-align. Lưu ý đặc biệt nó nói "đường cơ sở: Căn chỉnh đường cơ sở của hộp với đường cơ sở của hộp cha. ** Nếu hộp không có đường cơ sở, căn chỉnh cạnh lề dưới cùng với đường cơ sở của cha mẹ. **" – Alohci

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