L42*_*L42 20 html css position css-float
我一直在尝试创建一个具有以下结构的站点:
所需的结构http://i50.tinypic.com/vhw076.png
但我似乎无法使标题正确(e1左,e2居中,e3右).我希望三个元素e1,e2和e3分别位于左侧,中间和右侧.这就是我正在尝试的:
<div id="wrapper">
<div id="header">
<div id="header-e1">
1
</div>
<div id="header-e2">
2
</div>
<div id="header-e3">
3
</div>
</div>
<div id="nav">
links
</div>
<div id="content">
content
</div>
<div id="footer">
footer
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
有了这个css:
#wrapper
{
width: 95%;
margin: 20px auto;
border: 1px solid black;
}
#header
{
margin: 5px;
}
#header-e1
{
float: left;
border: 1px solid black;
}
#header-e2
{
float: left;
border: 1px solid black;
}
#header-e3
{
border: 1px solid black;
}
#nav
{
margin: 5px;
}
#content
{
margin: 5px;
}
#footer
{
margin: 5px;
}
Run Code Online (Sandbox Code Playgroud)
UPDATE
我上面的代码给了我这个: 当前的结果http://i46.tinypic.com/2mg87ya.png 但是我希望2居中,3让右边.我不想将宽度设置为百分比,因为元素中的内容可能会有所不同,这意味着它可能是20/60/20 - 10/80/10 - 33/33/33或其他内容.
Sco*_*ttS 22
如果你可以像这样交换2和3的html位置:
<div id="header-e1">
1 is wider
</div>
<div id="header-e3">
3 is also
</div>
<div id="header-e2">
2 conforms
</div>
Run Code Online (Sandbox Code Playgroud)
然后你可以设置这个CSS,这将导致2 "补"的可用空间,因为的overlow: hidden
就可以了.因此,如果1和3展开,2缩小(缩小窗口以查看在非常小的尺寸下发生的情况).
#header-e1 {float: left;}
#header-e2 {overflow: hidden;}
#header-e3 {float: right;}
Run Code Online (Sandbox Code Playgroud)
从技术上讲,你可以保留当前的HTML为了和你的float: left
两个1,2及使3柔性DIV用overflow: hidden
.您可以通过完全颠倒html的顺序并将2和3设置为float: right
1来完成相同的操作overflow: hidden
.对我来说,最好让中间弯曲,但你知道你的应用程序比我更好.
如果您正在尝试使网站具有响应式宽度,您可以尝试以下操作(33% 大约为三分之一):
#header-e1 {
float: left;
width:33%;
border: 1px solid black;
}
#header-e2 {
float: left;
width:33%;
border: 1px solid black;
}
#header-e3 {
float: left;
width:33%;
border: 1px solid black;
}
Run Code Online (Sandbox Code Playgroud)
您还可以为 div 使用固定宽度。如果你想彼此更远,你可以玩他们的左/右边缘等。希望有帮助!
这是无宽度的编辑:
#wrapper {
position:relative; (add to wrapper)
}
#header-e1 {
position:absolute;
left:0;
border:1px solid black;
}
#header-e2 {
position:absolute;
left:50%;
border:1px solid black;
}
#header-e3 {
position:absolute;
right:0;
border: 1px solid black;
}
Run Code Online (Sandbox Code Playgroud)