我正在寻找一个解决方案,让孩子div
适合父母的width
。
我在这里看到的大多数解决方案都不是跨浏览器兼容的(例如,display: table-cell;
中不支持<=8
。
答案 0 :(得分:62)
解决方案是不要声明width: 100%
。
默认值为width: auto
,对于块级元素(例如div
),无论如何都会使用“完整空间”(与width: 100%
的方式不同)。
请参阅: http://jsfiddle.net/U7PhY/2/
以防万一我的回答尚不清楚:只是不要在孩子width
上设置div
。
答案 1 :(得分:16)
您可以使用box-sizing
css属性,它的crossbrowser(ie8 +,以及所有真正的浏览器)以及针对此类情况的非常好的解决方案:
#childDiv{
box-sizing: border-box;
width: 100%; //or any percentage width you want
padding: 50px;
}
答案 2 :(得分:1)
如果将position:relative;
放在外部元素上,则内部元素将根据此元素放置。然后内部元素上的width:auto;
将与外部元素的宽度相同。
答案 3 :(得分:1)
在你的照片中,你将衬垫放在孩子外面。不是这种情况。填充会增加元素的宽度,因此如果添加填充并使其宽度为100%,则宽度为100%+填充。为了你想要的东西,你只需要在父div中添加填充,或者在内部div中添加一个边距。由于div是块级元素,因此它们将自动扩展到其父级的宽度。
答案 4 :(得分:1)
您的孩子div甚至不需要width: 100%
:
答案 5 :(得分:1)