4

我想让一个 div 忽略其父 div 的边距,因为在这种情况下:
html:

    <div class="wrap">
        I'm annoying!
        <div class="myown"> I don't want to have that annoying guy's margin! </div>
    </div>

CSS:

    .wrap {width: 200px; margin: 0 auto;} /* Do not change */
    .myown{margin: 0;}

我找到了这个答案,但它仍然不起作用!
这是运行时:http: //jsfiddle.net/KYbq3/2/
在我的情况下,我无法更改.wrap,只能更改.myown.

4

2 回答 2

2

如果您希望它“突破”容器,那么您唯一的选择似乎是position: absolute;. 它的问题在于它将元素从自然流动中取出。

.myown{ 
    position: absolute; 
    left: 0; 
    width: 100%; 
}

检查演示

于 2013-11-05T23:05:08.610 回答
0

如果您知道父经线的宽度,则可以计算与视口的差异

然后除以 2(左右边距)之间的差异,并将该值用作您自己元素的负边距。

如果你想忽略右边距,你可以将 with 分配给 100vw。

<style>
    .wrap {width: 200px; margin: 0 auto;} /* Do not change */
    
    .myown {    
        margin-left: calc( (-100vw + 200px ) /2);
        width: 100vw;
    }
</style>

<div class="wrap">
    I'm annoying!
    <div class="myown"> I don't want to have that annoying guy's margin! </div>
</div>
于 2021-09-29T18:43:35.590 回答