防止绝对孩子扩展父母

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了防止绝对孩子扩展父母相关的知识,希望对你有一定的参考价值。

所以我有一个具有固定高度和位置相对的父容器,并且在该容器中我想要一个具有绝对位置的子元素,它不会扩展父级的高度。这是我的标记:

<tr class="talent-box-table__row">
<ul class="dropdown-with-arrow" [ngClass]="{'dropdown-with-arrow--open': isTalentHistoryOpen}">
    <li class="dropdown-with-arrow__option talent-box-table__approver">
        <p class="talent-box-table__approver-name">
            userName
        </p>
        <p class="talent-box-table__status">userDecision</p>
    </li>
    <li class="dropdown-with-arrow__option talent-box-table__approver">
        <p class="talent-box-table__approver-name">
            userName
        </p>
        <p class="talent-box-table__status">userDecision</p>
    </li>
    <li class="dropdown-with-arrow__option talent-box-table__approver">
        <p class="talent-box-table__approver-name">
            userName
        </p>
        <p class="talent-box-table__status">userDecision</p>
    </li>
    <li class="dropdown-with-arrow__option talent-box-table__approver">
        <p class="talent-box-table__approver-name">
            userName
        </p>
        <p class="talent-box-table__status">userDecision</p>
    </li>
</ul>
</tr>

我的CSS:

.talent-box-table__row {
  position: relative;
  height: 7rem;
}

.dropdown-with-arrow {
  position: absolute;
  z-index: 10000000;
  top: 50%;
  left: 50%;
  height: 15rem;
  width: 15rem;
}

我的问题是 - 它应该工作,有这样的几行,我的下拉列表应该是上面的一切,但现在它只是扩展父容器高度,尽管它设置为7rem。根据我的理解,绝对定位元素应该脱离自然流动,但看起来它不起作用。这也是我用来检查它的小提琴 - 这里的一切都像它应该的那样:http://jsfiddle.net/ukswqyo0/4/

答案

我的猜测是,你的html语法错了。你在你的例子中写道:

<tr><ul>...</ul></tr>

但它应该是

<tr>
  <td><ul>...</ul></td>
</tr>

你的height设置应该在td ...我更新你的小提琴:http://jsfiddle.net/ukswqyo0/16/

this article

以上是关于防止绝对孩子扩展父母的主要内容,如果未能解决你的问题,请参考以下文章

PHP 任何孩子的绝对父母

防止父母李+李携带给孩子

防止孩子增加父母的宽度[重复]

如何防止拖累孩子,但允许拖累父母?

如何防止孩子在 fork() 之后干扰父母的标准输入

IllegalStateException,指定的孩子已经有一个父母 - ListFragment