我有以下标记,其中#content是80%宽并包含.slide元素.我希望幻灯片和祖父母一样宽(即本例中的正文).这是我的标记,无法更改:
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>