当前位置: 首页 > 知识库问答 >
问题:

溢出自动不使用绝对位置

叶桐
2023-03-14

在下面的代码中,

  1. 我有一个父div(.parent)和三个子div(.child1、.child2、.child3)

要求-

  1. 。儿童2应该重叠。儿童3
  2. 。child2应该可以水平滚动

问题-

使用绝对位置设置overflow-x不起作用。

如何使此表可滚动,以及使其与下面的所有div重叠?

企图-

$('#expand').click(function(){
    $('.child2').toggle()
});
.child2{
    /* position: absolute;
    z-index: 2; */
    overflow-x: auto;
}

.child3 {
    position: absolute;
    z-index: 1;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<div class="parent">
    <div class="child1" style="background-color: aqua; width: 50%;">
        <button id="expand">EXPAND</button>
    </div>
    <div class="child2" style="display: none;">
        <table class="table">
            <thead>
                <tr>
                    <th scope="col">#</th>
                    <th scope="col">First</th>
                    <th scope="col">Last</th>
                    <th scope="col">Handle</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <th scope="row">1</th>
                    <td>MarkMarkMarkMarkMarkMarkMark</td>
                    <td>Otto</td>
                    <td>@mdo</td>
                </tr>
                <tr>
                    <th scope="row">2</th>
                    <td>Jacob</td>
                    <td>Thornton</td>
                    <td>@fat</td>
                </tr>
                <tr>
                    <th scope="row">3</th>
                    <td>Larry</td>
                    <td>the Bird</td>
                    <td>@twitter</td>
                </tr>
            </tbody>
        </table>
    </div>
    <div class="child3" style="background-color: coral; width: 50%;">
        CHILD3
    </div>
</div>

共有1个答案

郎鹤龄
2023-03-14

overflow-x不起作用,除非出于某种原因,您有一个宽度。如果元素不是绝对定位的,则默认宽度为auto,但是,当元素绝对定位时,它会稍微出错,并且会占用它所需的所有宽度,不会提出任何问题。

因此,您可以通过将宽度:100%添加到您的

$('#expand').click(function(){
    $('.child2').toggle()
});
.child2{
    position: absolute;
    z-index: 2;
    overflow-x: auto;
    width: 100%;
}

.child3 {
    position: absolute;
    z-index: 1;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<div class="parent">
    <div class="child1" style="background-color: aqua; width: 50%;">
        <button id="expand">EXPAND</button>
    </div>
    <div class="child2" style="display: none;">
        <table class="table">
            <thead>
                <tr>
                    <th scope="col">#</th>
                    <th scope="col">First</th>
                    <th scope="col">Last</th>
                    <th scope="col">Handle</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <th scope="row">1</th>
                    <td>MarkMarkMarkMarkMarkMarkMark</td>
                    <td>Otto</td>
                    <td>@mdo</td>
                </tr>
                <tr>
                    <th scope="row">2</th>
                    <td>Jacob</td>
                    <td>Thornton</td>
                    <td>@fat</td>
                </tr>
                <tr>
                    <th scope="row">3</th>
                    <td>Larry</td>
                    <td>the Bird</td>
                    <td>@twitter</td>
                </tr>
            </tbody>
        </table>
    </div>
    <div class="child3" style="background-color: coral; width: 50%;">
        CHILD3
    </div>
</div>

 类似资料:
  • 问题内容: 我需要显示大于其父元素的子元素,但不删除overflow:hidden;。这可能吗?parent元素的 子元素一旦脱离父边界,就会被剥离。 (元素定义了其他的css,我只是为了清楚起见放置了样式属性) 问题答案: 这是完全不可能做到你想要什么都和父..相反,你可以引入额外的儿童并移动到这一点。 HTML: CSS:

  • 问题内容: 我们有两个DIV,一个嵌入另一个。如果外部DIV的位置不是绝对的,则内部DIV的位置绝对是不遵守外部DIV所隐藏的溢出的。 是否有机会使内部DIV服从外部DIV的隐藏溢出,而无需将外部DIV设置为绝对位置(因为这会破坏我们的完整布局)?相对于内部DIV的相对位置也不是一种选择,因为我们需要“增长”到表TD(exmple)。 还有其他选择吗? 问题答案: 制作外,以和内到。它应该为您工作

  • 问题内容: 给出以下HTML代码段: 您(通常)会得到一个黑匣子,其中的滚动条包含一个数字1至30,每个数字都在新行中。 您可以在该框内上下滚动。 我现在需要的是找出框处于哪个滚动位置的可能性。假设每行高15像素,然后向下滚动到数字10,我想得到的结果是数字150(15像素* 10行)。 我在哪里可以找到这个号码? 我手上有普通的JavaScript和jQuery。 问题答案: 您需要使用该属性。

  • 问题内容: 我一直在努力奋斗。我想绝对定位将在div中移动的图像,并希望剪切超出div的任何内容。这是问题的示例: 因此,我希望徽标的右边缘不显示。有想法吗? 问题答案: 由于图像的容器是绝对放置的,因此它不在“包含” div的范围之内。 您的选择是使用jQuery动态定位相对位置或调整绝对定位div的尺寸。

  • 问题内容: 我正在尝试将ID为“ absPos”的div相对于其父div放在绝对位置。但它不起作用,div放置在页面的左上角。 我的代码示例如下 您能帮我解决这个问题吗?在我的实际情况下,我必须放置背景图像,而不是红色背景色。 问候 问题答案: 绝对定位的元素从其最近的祖先开始定位。在您的代码中,祖先都不是“定位”元素,因此div从body元素(即)偏移。 解决方案是将其应用于父div,这迫使它成

  • 问题内容: 我希望div始终位于其父div的右侧,因此我使用。有用。 但我也希望它在插入时不影响其他内容,所以我使用。 现在不起作用,我的div始终位于其父div的左侧。如何将其向右移动? 问题答案: 采用 无需绝对定位 另外,请确保将父元素设置为