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

超出窗口宽度的溢出背景

穆轶
2023-03-14

我必须设计如下内容:

>

  • 包含“n”个孩子的父容器很可能超出窗口的宽度,在这种情况下,页面应该滚动,而不是换行到下一行。

    上面的容器将在另一个容器下面渲染多次。

    页面应该作为一个整体滚动,即滚动应该在包装器(div with class. overflow)级别,而不是在单独的父级。

    在下面的片段中水平滚动以查看行为。

    .overflow {
      overflow-x: auto;
    }
    
    .parent {
      background: #ccc;
      border: 4px solid blue;
      display: flex;
      margin: 10px 0;
    }
    
    .child {
      display: inline-flex;
      height: 50px;
      background: white;
      margin: 10px;
      flex: 1 0 300px;
      border: 2px solid red;
    }
    <div class="overflow">
      <div class="parent">
        <div class="child">
          1
        </div>
        <div class="child">
          2
        </div>
        <div class="child">
          3
        </div>
      </div>
      <div class="parent">
        <div class="child">
          1
        </div>
        <div class="child">
          2
        </div>
        <div class="child">
          3
        </div>
      </div>
    </div>

    现在的问题是,父对象上的灰色背景不会溢出到窗口宽度以外的子对象后面。

    如何实现这一点(使所有其子级的div后台溢出),并可能保留flex-box

  • 共有2个答案

    郝哲茂
    2023-03-14

    移除溢出div

    将父类css更改为

    .parent {
      overflow-x: auto;
      background: #ccc;
      border: 4px solid blue;
      display: flex;
      margin: 10px 0;
    }
    
    翁阳曜
    2023-03-14

    使用inline-flex作为父节点,并将flex-base替换为

    .overflow {
      overflow-x: auto;
    }
    
    .parent {
      background: #ccc;
      border: 4px solid blue;
      display: inline-flex;
      min-width:100%; /*To keep the block behavior*/
      box-sizing:border-box;
      margin: 10px 0;
    }
    
    .child {
      display: inline-flex;
      height: 50px;
      background: white;
      margin: 10px;
      width:300px;
      flex-shrink:0;
      flex-grow:1;
      border: 2px solid red;
    }
    <div class="overflow">
      <div class="parent">
        <div class="child">
          1
        </div>
        <div class="child">
          2
        </div>
        <div class="child">
          3
        </div>
      </div>
      <div class="parent">
        <div class="child">
          1
        </div>
        <div class="child">
          2
        </div>
        <div class="child">
          3
        </div>
      </div>
    </div>
     类似资料:
    • 问题内容: 我正在使用Bootstrap 3设计页面。我试图在输入元素上使用带有popover的页面。新的Bootstrap可确保您在使用时基本上具有全角输入元素。 HTML代码如下所示: 我认为popover的宽度太小,因为它们在div中没有​​剩余的任何宽度。我想在左侧输入表单,在右侧显示宽弹出窗口。 通常,我正在寻找无需覆盖Bootstrap的解决方案。 附加的JsFiddle。第二个输入选

    • 大多数情况下,我在寻找一个不用重写引导的解决方案。 附加的jsfiddle。第二个输入选项。没有经常使用jsfiddle,所以不知道,但尝试增加输出框的大小来查看结果,在更小的屏幕上甚至看不到。http://jsfiddle.net/rqx8t/

    • 在鼠标悬停时,我想变换两个相邻的flex元素的位置,如下图所示 标记如下 我希望两个元素都是父元素的100%宽度,第二个元素溢出,这样我就可以在鼠标悬停时变换X。我遇到的问题是两个元素都被挤压到容器中。 我知道我可以在另一个div中包装这两个元素,并给它200%的容器宽度。但想知道这能不能用Flexbox完成

    • 问题内容: 试图在“分成两部分”的页面上获得背景;相对两侧的两种颜色(似乎是通过在标记上设置默认值,然后将另一种颜色应用到可拉伸整个窗口宽度的来完成的)。 我确实提出了一个解决方案,但不幸的是,该属性在IE7 / 8中不起作用,这对于该项目是必不可少的- 由于它只是纯色,也许有一种只使用常规属性的方法吗? 问题答案: 如果必须有较旧的浏览器支持,那么您就不能同时使用多个背景或渐变,那么您可能需要对

    • 我创建了一个固定在页面底部的容器。但是,容器随后溢出页面,填充规则被完全忽略。我在论坛上搜索过,但找不到一个解决问题的方法。我试过使用position absolute,也试过使用Javascript计算滚动条宽度,但都没有用。 null null

    • HTML: CSS: 问题是,当我悬停时,滚动条会像预期的那样显示出来,但当我取消悬停时,带有id的div中所有元素的宽度都会发生变化。我所说的变化是指它变得更小,以适应下一次悬停时的滚动条…我想要的是...显示滚动条时的宽度变化很好,但是当滚动条不再可见时,我希望它返回到100%的宽度,我甚至尝试将添加到div,但它不起作用。我怎么能这么做... 希望我能把自己说清楚..