Answers:
出于图像目的,您可以执行以下操作
img {
width: calc(100% + 20px); // twice the value of the parent's padding
margin-left: -10px; // -1 * parent's padding
}
有点迟了,但这只需要一点数学。
.content {
margin-top: 50px;
background: #777;
padding: 30px;
padding-bottom: 0;
font-size: 11px;
border: 1px dotted #222;
}
.bottom-content {
background: #999;
width: 100%; /* you need this for it to work */
margin-left: -30px; /* will touch very left side */
padding-right: 60px; /* will touch very right side */
}
<div class='content'>
<p>A paragraph</p>
<p>Another paragraph.</p>
<p>No more content</p>
<div class='bottom-content'>
I want this div to ignore padding.
</div>
我没有Windows,所以没有在IE中进行测试。
小提琴: 小提琴的例子
margin: 0 -10px;
胜过
margin: -10px;
后者将内容垂直吸入其中。
您的父级宽度为120px-宽度为100像素+每侧有20个填充,因此您需要将线宽设为120px。这是代码。下次,请注意填充会增加元素的宽度。
#parent
{
width: 100px;
padding: 10px;
background-color: Red;
}
hr
{
width: 120px;
margin:0 -10px;
position:relative;
}
width: auto;
在中使用hr
。jsfiddle.net/ToolmakerSteve/7p85dsrq/3 不幸的是,此解决方案仍然需要padding
父级知道设置。
问题可能归结于您使用的是哪种盒子模型。您正在使用IE吗?
当IE处于quirks模式时,它width
是框的外部宽度,这意味着填充将在内部。因此,框内剩余的总面积100px - 2 * 10px = 80px
在这种情况下,您的100px宽度<hr>
将看起来不正确。
如果处于标准模式,width
则为框的内部宽度,并在外部添加填充。因此,框的总宽度100px + 2 * 10px = 120px
正好在框内保留100px的像素<hr>
。
要解决此问题,请调整IE的CSS值。(在Firefox中检查,看那里是否还可以)。甚至更好的是,设置文档类型以使浏览器进入严格模式-IE也遵循标准框模式。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
...
这是另一种方法。
<style>
.padded-element{margin: 0px; padding: 10px;}
.padded-element img{margin-left: -10px; width: calc(100% + 10px + 10px);}
</style>
<p class="padded-element">
<img src="https://images.pexels.com/photos/3014019/pexels-photo-3014019.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940">
</p>
以下是关于repl.it的一些示例:https ://repl.it/@bryku/LightgrayBleakIntercept
<hr>
距div的末尾将为20px。看到这个jsFiddle是我的意思:jsfiddle.net/YVrWy/1