html - 当绝对定位元素在固定宽度容器内时,如何使它占据全屏宽度?

标签 html css

HTML:

<div id='id1'>
  <div id='id2'>
  
  </div>
</div>

CSS:

#id1 {
  width: 300px;
  height: 200px;
  margin: 0 auto;
  background: red;
  position: relative;
}
#id2 {
  position: absolute; left: 0; right: 0; margin-left: auto; margin-right: auto;
  width: 100%; top: 20px; background: green; height: 30px;
}

我希望#id2 占据全屏宽度。我可以指定左:-Npx 和右:-Npx,但这仅适用于某些屏幕尺寸。

id2不能超出screen,所以不能指定left:-9999px;

相关 fiddle :https://jsfiddle.net/aLubmd4a/

最佳答案

这是一个部分解决方案,我将 #id2 元素的 positionposition:absolute; 更改为 位置:固定;

更新了您的 fiddle 示例:https://jsfiddle.net/aLubmd4a/2/

如果我理解正确的话,你想要实现的目标是不可能的。元素的大小和位置必须与某些上下文相关。

在您的示例中,您希望它采用 body 的宽度,但相对于您的 #id1 元素定位(垂直),对吗?如果是这样,您应该选择一边,或者从 #id1 中取出内部 div (#id2),或者确保更新内部 #id2 相应地。

关于html - 当绝对定位元素在固定宽度容器内时,如何使它占据全屏宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43114304/

相关文章:

java - 如何点击 Span 类元素

javascript - 在滚动条中动画滚动

html - div 内联 block 的使用和动态宽度取决于 div 的数量

javascript - 如何制作实时jquery效果?

html - 如何将属性添加到 css 资源到 nopcommerce

html - 如何删除 Logo 和内容之间出现的额外行

jquery按顺序从上到下淡出

javascript - 在sharepoint中用javascript读取txt文件

html - 电子邮件通讯 <td> 相互重叠

javascript - 访问一个 Controller 的 ng-hide 值以在全局 Controller 中操作另一个 Controller 的 ng-style