【发布时间】:2016-06-14 05:34:12
【问题描述】:
【问题讨论】:
-
你的代码在哪里?到目前为止,您尝试过什么?
-
欢迎来到 Stack Overflow!寻求代码帮助的问题必须包括在问题本身最好在Stack Snippet 中重现它所需的最短代码。见How to create a Minimal, Complete, and Verifiable example
【问题讨论】:
创建 2 个 div,一个用于左侧,一个用于右侧,然后在右侧 div(与左侧 div 大小相同)内将 3 个 div 作为单独的 div。在你的 HTML 中有这样的东西:
<div id="left>
....some stuff....
</div>
<div id="rightContainer">
<div id="top">
....some stuff....
</div>
<div id="middle">
....some stuff....
</div>
<div id="bottom">
....some stuff....
</div>
</div>
您的 CSS 将是:
#left {
width: 200px;
float:left;
height:600px;
}
#rightContainer {
width: 200px;
float:left;
height:600px;
}
#top, #middle, #bottom {
height:200px;
width:100%;
float:left;
}
应该是关于你需要什么(或者差不多!)。
到目前为止发布您的代码,我相信我们可以做得更多:)
【讨论】:
我创建了两个 js fiddles 供您查看。两者都使用%而不是固定数字,第一个在右侧的水平容器之间具有均匀的间距(尽管它们与左侧不共享相同的底部),而第二个使底部容器位于右侧有一个绝对位置,在水平容器之间产生不均匀的空间: html:
<div id="left">
</div>
<div id="right">
<div id="row1"></div>
<div id="row2"></div>
<div id="row3"></div>
</div>
css:
#left {
display: inline-block;
border: 2px solid black;
height: 596px;
width: 30%;
}
#right {
position: relative;
display: inline-block;
height: 600px;
width: 60%;
margin-left: 8%;
vertical-align: top;
}
#row1,
#row2,
#row3 {
border: 2px solid black;
}
#row1,
#row2 {
height: 30%;
margin-bottom: 5%;
}
#row3 {
height: 20%;
}
same spacing but different bottoms jsfiddle
html:
<div id="left">
</div>
<div id="right">
<div id="row1"></div>
<div id="row2"></div>
<div id="row3"></div>
</div>
css:
#left {
display: inline-block;
border: 2px solid black;
height: 596px;
width: 30%;
}
#right {
position: relative;
display: inline-block;
height: 600px;
width: 60%;
margin-left: 8%;
vertical-align: top;
}
#row1,
#row2,
#row3 {
border: 2px solid black;
}
#row1,
#row2 {
height: 35%;
margin-bottom: 5%;
}
#row3 {
height: 20%;
position: absolute;
bottom: 0;
width: 100%;
}
same bottom but different spacing jsfiddle
这与您正在寻找的内容接近吗?
【讨论】:
float:left; 影响一个元素相对于一个容器中的其他元素的显示方式。 position:absolute; 实际上只是使该元素的位置不受其他元素的影响。通常两者都可以用来实现一个目的。查看您的情况并决定使用哪个。例如。如果您想让某些东西左对齐并让其他元素环绕它(例如,带有文字环绕的图片),float:left; 是有道理的。但是,如果您希望某些内容看起来好像位于其他内容之上(例如,图像之上的文本),position:absolute; 更合适。