css3 - 自适应高度问题
大家讲道理
大家讲道理 2017-04-17 11:56:26
0
8
567

如何在父级p高度是auto的情况下,子级p为父级p的一半,子级p里面有个图片高度为60(图片自己的高度,并没有给图片高度)。有没有实现的可能

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回覆(8)
迷茫

確實描述不清,我想改問題但又怕不是題主想問的問題。試著答一下。

首先你要知道,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除外,但在這裡用不上。

解決方法

  1. 如果你的圖片是確定的高度,那麼設定為#p2設定確定的padding-top是最簡單的辦法

  2. 如果圖片的高度不是確定的,就用JS吧。

伊谢尔伦

問題描述的稍微有點亂、可以編輯一下問題重新說明清楚嗎、還有是用JS實作還是只能用CSS

阿神

以CSS來說,高度auto是由內容撐起的,父與子元素都沒有設定高度,那實際高度就只有那張圖片而已

黄舟

總覺得怪怪的!
要實現的話透過js取得子級p的高度h,再設定父p的高度為h*2

(父auto,子級p中只有一張圖片,子p的高度也就都是圖片高度,直接設定父高120)

阿神

不可能,只有不是auto時子才能依父調整大小

Peter_Zhu

你這不是雞生蛋還蛋生雞的問題麼

Peter_Zhu

都沒高度的話,子p就是圖片高度

大家讲道理

可以透過js先取得圖片的高度,再設定子p和父p的高度

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板