我有问题设置布局,因为我的一个div div使得它离开了它的父div。
我有:高度为10%的标题,高度为90%的容器,以及高度设置为90%且margin-top设置为10%的“div1”内部。如果我删除margin-top一切都没问题,如果不是它超出了父级大小创建滚动等(我想设置div1高度,我不需要将高度设置为自动等)。
JsFiddle:https://jsfiddle.net/5q9vh93n/
<body>
<div id="header">Header</div>
<div id="container">
<div id="div1">1</div>
<div id="div2">2</div>
</div>
</body>
body, html
{
color: white;
margin: 0px;
padding: 0px;
height: 100%;
}
#header
{
background-color: blue;
height: 10%;
}
#container
{
width: 100%;
height: 90%;
background-color: gray;
}
#div1 {
background-color: red;
float: left;
width: 15.67%;
margin-top: 10%;
margin-left: 1.5%;
height: 90%;
}
#div2 {
background-color: green;
float: right;
width: 100px;
width: 43.17%;
margin-right: 3.6%;
}
答案 0 :(得分:3)
此处使用转换为demo
#div1 {
background-color: red;
float: left;
width: 15.67%;
transform: translateY(10%);
margin-left: 1.5%;
height: 90%;
}
答案 1 :(得分:0)
您应该使用position: absolute;
并将margin-top
更改为top
,margin-left
更改为left
。所以#div的css如下:
#div1 {
position: absolute;
background-color: red;
float: left;
width: 15.67%;
top: 10%;
left: 1.5%;
height: 90%;
}
答案 2 :(得分:0)
当我发现这一点时,我真的很惊讶,但垂直填充和边距是相对于父母的宽度,而不是高度。
要解决您的问题,您可以使用top
属性,而不是相对于父级的高度。
因此,只需将您的代码更改为此代码即可。
#div1 {
top: 10%;
position: relative;
}
JSFiddle:https://jsfiddle.net/5q9vh93n/2/
希望它有所帮助!