【问题标题】:Trouble Using Flex Boxes with Absolute Positioning使用具有绝对定位的 Flex Box 时遇到问题
【发布时间】:2021-11-14 04:43:25
【问题描述】:

我正在尝试将带有一些文本的 div 覆盖在另一个 div 上,其中两个图像需要左右对齐。我过去使用过 flexbox,所以我很困惑为什么这不起作用,但我注意到一旦我从两个图像按我预期的样式中删除了 position:absolute(副作用是不再覆盖这两个图像) divs 彼此)。如果我以像素为单位设置宽度,它会按需要工作,但因为我正在设计跨屏幕尺寸,所以我想尽可能避免这样做。

我看到this 的问题说position:absolute 不应该与弹性框冲突,所以我不确定我为什么会遇到这个问题。

Here 是一个codepen,可以看到,当你去掉绝对定位时,猫的图像会移动到最右边,但是当它到位时,猫会立即与狗相邻。

<div style="display:flex;justify-content:space-between;position:absolute;z-index: -1;">
    <div>FOO</div>
    <div>BAR</div>
</div>
<div>
    SOME TEXT
</div>

【问题讨论】:

  • 所以你想把 FOOBAR 放在Some Text 上?
  • 对不起,我没说清楚!我想将SOME TEXT 放在包含 FOO 和 BAR 的 div 上
  • 为什么不 FOOBAR = flexbox 和一些 text= absolute?并提示如果你准备了一个在线沙盒,你会得到更好的回复。
  • 感谢您的提示,下次我一定会这样做!你是对的,因为它可以很容易地被交换——哪个 div 是绝对定位的,哪个不是,这是相当随意的,但是文本 div 也涉及弹性框,所以在这一点上我更好奇为什么它看起来像如果position:absolute 阻止弹性框被执行。
  • 添加了一个codepen。

标签: html flexbox


【解决方案1】:

通过提供position: absolute,您的 div 根本不会使用其父级(在本例中为窗口)的整个宽度。您可以指定width: 100% 或left: 0; right: 0; 将其拉伸到全宽。

【讨论】:

  • 谢谢!对于其他有问题的人,我最终需要将父 div 和祖父 div 都设置为 width:inherit 以实现我特别想要的结果,但是这个答案既准确又帮助我了解我需要做什么。跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-14
  • 2018-02-03
  • 2017-05-15
  • 2017-12-06
  • 1970-01-01
相关资源
最近更新 更多