【问题标题】:Set auto-height to parent div with inner-most absolute div将自动高度设置为具有最内层绝对 div 的父 div
【发布时间】:2019-09-17 16:08:47
【问题描述】:

我正在尝试为具有绝对最内层子元素的父 div 设置自动高度。假设我有 3 个元素。一个父 div、一个表和一个表内的内部 div(具有绝对位置)。默认情况下,所有最内层的 div 都是隐藏的。但是在单击某个使这个最内层 div 出现的事件后,父 div 必须通过设置自动高度来适应这些。但是绝对元素的问题,它们的尺寸不能影响父母的尺寸。你能告诉我如何使用 JavaScript 来实现这一点吗?谢谢。

<div class="parent">
    <table>
        <thead>
            <tr>
                <th>col1</th>
                <th>col2</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>row1<td>
                <td>row1<td>
            </tr>           
            <tr>
                <td>row2<td>
                <td>row2<td>
            </tr>   
            <tr>
                <td class="inner-div">
                    row3
                    <div class="inner-child">
                        <table>
                            <thead>
                                <tr>
                                    <th>col1</th>
                                    <th>col2</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>row1<td>
                                    <td>row1<td>
                                </tr>           
                                <tr>
                                    <td>row2<td>
                                    <td>row2<td>
                                </tr>   
                            </tbody>
                        </table>
                    </div>
                <td>
                <td>row3<td>
            </tr>                    
        </tbody>
    </table>
</div>

请看下图。

【问题讨论】:

标签: javascript jquery html


【解决方案1】:

使用 jQuery,您可以使用 outerHeight() 并计算您需要的所有元素的高度。用https://api.jquery.com/css/设置高度父级后

【讨论】:

    【解决方案2】:

    必须使用position:absolute吗?

    也许你可以使用 position: relative 到内部 div 的位置,它们会自动影响父级的大小。

    【讨论】:

    • 已经试过了。但如果你注意到的话,inner-child 位于 'td class="inner-div"' 之下。如果我将位置:相对于 td 设置为绝对位置,则该表将仅适合该单元格内的所有内容。
    • 我的意思是设置 position:relative 到 div.inner-child 并完全避免绝对定位。这应该会自动影响 td.inner-div 的高度。当然,如果它符合所需的布局。
    • 这是我想到的第一件事。但不幸的是,即使我强迫它成为那样,它也从未发生过。所以不,不是我需要的布局。所以发生的事情是我坚持使用 javaScript 作为我唯一的解决方案的绝对定位。无论如何,谢谢你!
    猜你喜欢
    • 2019-07-08
    • 2019-01-25
    • 1970-01-01
    • 2015-03-17
    • 2015-05-07
    • 1970-01-01
    • 2013-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多