搜尋

首頁  >  問答  >  主體

css3 - 自适应高度问题

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

大家讲道理大家讲道理2779 天前562

全部回覆(8)我來回復

  • 迷茫

    迷茫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除外,但在這裡用不上。

    解決方法

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

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

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 11:58:26

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

    回覆
    0
  • 阿神

    阿神2017-04-17 11:58:26

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

    回覆
    0
  • 黄舟

    黄舟2017-04-17 11:58:26

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

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

    回覆
    0
  • 阿神

    阿神2017-04-17 11:58:26

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

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-17 11:58:26

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

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-17 11:58:26

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

    回覆
    0
  • 大家讲道理

    大家讲道理2017-04-17 11:58:26

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

    回覆
    0
  • 取消回覆