我正在尝试将图像大小设置为容器大小+20px。容器大小是相对的,并且会根据屏幕大小而变化。
通常,如果我必须调整带有背景的div的大小,我只会将其设置为position absolute,并使用负positions值,但img元素似乎不遵循相同的规则。你知道什么解决方案吗?
HTML:
<div>
<img />
</div>
Css:
div {
position: relative;
overflow: hidden;
width: 100%;
padding-top: 56.5%;
}
div img {
position: absolute;
top: -20px;
right: -20px;
bottom: -20px;
left: -20px;
}
请记住,绝对定位会将元素从文档流中移除,从而使其成为容器。如果希望图像相对于它所在的容器,则位置需要是相对的,请添加所需的大小。
从逻辑上考虑,为什么不在主要内容div周围封装一个额外的div并给它一些填充呢?
<div id=container>
<div id=content>
some content
</div>
</div>
其中容器具有bg图像和20px的填充。
为什么不直接使用calc函数呢。
width: calc(100% + 20px);
这是小提琴http://jsfiddle.net/7hbq5/14/
Calc函数有很好的支持http://caniuse.com/#search=calc