我有一个令人头疼的问题。
我需要一个100%宽,100%高的容器,20px的边距随内容扩展。这是可能吗?我得到的最接近的是这种方法:
#container {
position:absolute;
top:0;
bottom:0px;
left:0;
right:0;
margin:20px;
}
但随后内容不会扩大。
有人知道神圣的技术吗?
答案 0 :(得分:3)
我很确定单个元素是不可能的,但是如果你不介意有3个spacer div
元素,这个解决方案适用于所有浏览器:
<html>
<head>
<style type="text/css">
* {
margin: 0;
}
html, body {
height: 100%; padding: 0; /* padding 0 is for jsfiddle */
}
#wrapper {
min-height: 100%;
height: auto !important;
height: 100%;
margin-left: 20px;
margin-right: 20px;
margin-bottom: -20px; /* the bottom margin is the negative value of the spacer height */
background-color: #ccc;
}
.spacer.edge {
background-color: white; /* same as body background */
}
.spacer {
height: 20px;
}
</style>
</head>
<body>
<div id="wrapper">
<div class="spacer edge"></div>
<!-- content here -->
<div class="spacer"></div>
</div>
<div class="spacer edge"></div>
</body>
</html>
这是一个小提琴:http://jsfiddle.net/dTyTW/
答案 1 :(得分:0)
移除margin
并为每个位置20px
。
同时删除bottom
。
添加padding-bottom:20px;
#container {
position:absolute;
top:20px;
left:20px;
right:20px;
padding-bottom:20px;
}
http://jsfiddle.net/jasongennaro/w7dQP/3/
修改强>
如果你不反对使用某些jQuery,你也可以这样做
var h = $(document).height();
var h2 = $('#container').height();
if(h2 < h){
$('#container').height(h);
}
这可确保如果div
小于浏览器视口,它将展开以适应它。
一旦文字大或大,样式就会照顾它。
答案 2 :(得分:0)
我想用内容扩展div,然后你需要设置位置:相对而且为了坚持底部填充底部也需要设置。
#container {
position:relative;
top:20px;
bottom:20px;
left:20px;
right:20px;
padding-bottom: 80%;
border:1px solid red;
}
可根据要求调整值。 试试here
答案 3 :(得分:0)
<html>
<style>
body
{
margin:0px;
}
div
{
position: absolute;
padding: 20px;
}
img
{
position: relative;
width: 100%;
}
</style>
<body>
<div>
<img src="http://manual.businesstool.dk/screen.jpg" />
</div>
</body>
</html>
使用填充属性...查找框模型。