html - 使元素与祖 parent 一样宽

标签 html css

我有以下标记,其中 #content 的宽度为 80%,并且包含 .slide 元素。我希望幻灯片与它们的祖 parent 一样宽(即本例中的正文)。这是我的标记并且无法更改:

body {
  margin: 0;
  font: medium monospace;
  background: lightgray;
}
#content {
  margin: auto;
  width: 80%;
  background: white;
}
#content:before,
#content:after {
  content: "";
  display: table;
}
.slide {
  height: 6em;
  background: indianred;
}
<div id="content">
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
  <blockquote>
    <p>Phasellus euismod dolor imperdiet!</p>
  </blockquote>
  <div class="slide">Donec mauris tellus</div>
  <p>Pellentesque sit amet venenatis diam, at interdum tortor.</p>
  <ul>
    <li>Quisque ornare mi in pharetra porttitor.</li>
    <li>Nulla ultrices quam nec vehicula porta.</li>
  </ul>
</div>

我试过:

  • 需要固定幻灯片高度的相对绝对定位(幻灯片包含可变长度的文本)
  • 在段落而不是内容上设置 80% 宽度,但这并不优雅(内容包含不能有 80% 宽度或 10% 左边距的元素)

最佳答案

如果您周围的内容可能需要不同的定位属性组合,您总是可以使用以下内容。

body {
  margin: 0;
  font: medium monospace;
  background: lightgray;
}
#content {
  margin: auto;
  width: 80%;
  background: white;
}
#content:before,
#content:after {
  content: "";
  display: table;
}
.slide {
  height: 6em;
  background: indianred;
  width: 125%; /*100*(100/80)*/
  margin-left: 50%;
  transform: translateX(-50%);
}
<div id="content">
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
  <div class="slide">Donec mauris tellus</div>
  <p>Pellentesque sit amet venenatis diam, at interdum tortor.</p>
</div>

关于html - 使元素与祖 parent 一样宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29963950/

相关文章:

javascript - 如何使用 JavaScript 和 CSS 实现淡入淡出

javascript - 如何选择除一个div之外的整个html

html - Bootstrap 模板中的奇怪按钮标签

jquery - 响应式图像裁剪

css - 侧 Angular 标记 (CSS)

javascript - 在 ExtJS 中更改按钮文本颜色

javascript - .hasClass() 忘记了类分配。为什么?

javascript - 如何在 JavaScript 中向当前年份添加特定年份?

html - CSS 真的可以覆盖页面上 HTML 元素的顺序吗?

html - 隐藏的溢出不适用于宽度和高度为 100% 的容器