如何在父级p高度是auto的情况下,子级p为父级p的一半,子级p里面有个图片高度为60(图片自己的高度,并没有给图片高度)。有没有实现的可能
迷茫2017-04-17 11:58:26
確實描述不清,我想改問題但又怕不是題主想問的問題。試著答一下。
首先你要知道,auto、50%、em這樣的關鍵字或相對單位長度是要計算成確切的值(如px)。
如果父元素的高度是auto,那麼他是根據子元素的高度計算的。
根據題主描述,最容易想到的是:
<p id="p1" style="height:auto">
<p id="p2" style="height:50%"></p>
</p>
你可以試試,這樣不管用,為什麼呢? #p1的高度是根據#p2的高度計算的。而#p2的高度是#p1的一半。這就產生了相互依賴。
而CSS中的相對單位都是根據父元素計算的,em除外,但在這裡用不上。
解決方法
如果你的圖片是確定的高度,那麼設定為#p2設定確定的padding-top是最簡單的辦法
如果圖片的高度不是確定的,就用JS吧。
黄舟2017-04-17 11:58:26
總覺得怪怪的!
要實現的話透過js取得子級p的高度h,再設定父p的高度為h*2
(父auto,子級p中只有一張圖片,子p的高度也就都是圖片高度,直接設定父高120)