2015-03-13 43 views
0

我最近进入了HTML/CSS的世界,我正在苦苦挣扎。简单的HTML/CSS - 定位div的

我想定位div的是这样的: http://toresveaass.no/toresveaass/DivQuestion.png

但我只是设法像这样: http://toresveaass.no/toresveaass/DivQuestion-2.png

正如你看到的,我想DIV 5〜低于股利4,和旁边的div 3.但我只有

当然,我可以将div 4和div 5包装在一个新的div中,但我宁愿学习一个更好的方法来做到这一点。

body { 
 
    background-color: yellow; 
 
} 
 
#banner { 
 
    background-color: green; 
 
} 
 
#topp-meny { 
 
    background-color: pink; 
 
} 
 
#side-meny { 
 
    background-color: violet; 
 
    float: left; 
 
} 
 
#innhold { 
 
    background-color: grey; 
 
    float: left; 
 
} 
 
#footer { 
 
    background-color: blue; 
 
    clear: both; 
 
}
<div id="banner">Webutvikling</div> 
 

 
<div id="topp-meny">Meny</div> 
 

 

 
<div id="side-meny"> 
 
    <p>sidemeny</p> 
 
</div> 
 

 
<div id="innhold"> 
 
    <p>innhold</p> 
 
</div> 
 

 
<div id="footer"> 
 
    <p>footer</p> 
 
</div>

+0

包装的div 4 5在另一个div中并不是一个糟糕的或错误的方式来做到这一点。 – hungerstar 2015-03-13 13:52:46

+0

http://jsfiddle.net/gfnb09b8/这样? – 2015-03-13 14:07:04

回答

1

我不认为有一个更好的办法,而不在DIV你的事业部4和5,但在地方使用float的包裹这样做,你可以指定一个width每个格并显示出来作为display : inline-block;(好一点)。

* { 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
body { 
 
    background-color: yellow; 
 
} 
 
#banner { 
 
    background-color: green; 
 
} 
 
#topp-meny { 
 
    background-color: pink; 
 
} 
 
#side-meny { 
 
    background-color: violet; 
 
    display: inline-block; 
 
    vertical-align: top; 
 
} 
 
#innhold { 
 
    background-color: grey; 
 
} 
 
#footer { 
 
    background-color: blue; 
 
} 
 
#wrapping { 
 
    display: inline-block; 
 
}
<div id="banner">Webutvikling</div> 
 
<div id="topp-meny">Meny</div> 
 
<div id="side-meny"> 
 
    <p>sidemeny</p> 
 
</div> 
 
<div id="wrapping"> 
 
    <div id="innhold"> 
 
    <p>innhold</p> 
 
    </div> 
 
    <div id="footer"> 
 
    <p>footer</p> 
 
    </div> 
 
</div>

没有包装,你可以添加一个height(PX中,而不是在%)到您的股利3,使股利5仍然是正确的。我真的不喜欢这个选项...

* { 
 
     margin: 0; 
 
     padding: 0; 
 
    } 
 
    body { 
 
     background-color: yellow; 
 
    } 
 
    #banner { 
 
     background-color: green; 
 
    } 
 
    #topp-meny { 
 
     background-color: pink; 
 
    } 
 
    #side-meny { 
 
     background-color: violet; 
 
     float: left; 
 
     height: 50px; 
 
    } 
 
    #innhold { 
 
     background-color: grey; 
 
     float: left; 
 
     width: 90% 
 
    } 
 
    #footer { 
 
     background-color: blue; 
 
     float: left; 
 
     width: 90% 
 
    }
<div id="banner">Webutvikling</div> 
 
<div id="topp-meny">Meny</div> 
 
<div id="side-meny"> 
 
    <p>sidemeny</p> 
 
</div> 
 
<div id="innhold"> 
 
    <p>innhold</p> 
 
</div> 
 
<div id="footer"> 
 
    <p>footer</p> 
 
</div>

的问题是,你需要指定你的子菜单静态高度...

0

通过您所提供的图表状况:

#side-meny { 
    float:left 
} 

使含#innhold和#footer的一个新的div,我们称之为#右容器所以你必须

<div id="right-container"> 
    <div id="innhold"> 
    <p>innhold</p> 
    </div> 

    <div id="footer"> 
    <p>footer</p>   
    </div> 
</div> 

Then

#right-container { 
    float:right 
} 

看看是否有效。

+0

OP在他们的问题中提到了这个解决方案,但是希望找到*更好的方法来实现所述布局。我完全支持你的答案(包装两个div),并且认为你应该为这个方法提供支持,以便为什么OP应该使用它直接说明*更好的方式*声明。 – hungerstar 2015-03-13 14:00:07

-1

在你的CSS文件,你可以设置

#footer{ 
    ... 
    position:absolute; 
    left: (div3's width); 
    top: (div1+div2+div4 height) 
} 
0

请使用下面的代码,我已经修改。


             
  
 body { 
 
     background-color: yellow; 
 
     } 
 
    #banner { 
 
     background-color: green; 
 
     } 
 
    #topp-meny { 
 
     background-color: pink; 
 
     } 
 
    #side-meny { 
 
     background-color: violet; 
 
     display: inline-block; 
 
     vertical-align: top; 
 
     width: 25%; 
 
     } 
 
    #block { 
 
     display: inline-block; 
 
     vertical-align: top; 
 
     width: 74%; 
 
     } 
 
    #block p { 
 
     margin: 0; 
 
     } 
 
     #innhold { 
 
     background-color: grey; 
 
     } 
 
    #footer { 
 
     background-color: blue; 
 
     clear: both; 
 
     } 
 
    
 <div id="banner">Webutvikling</div> 
 
    <div id="topp-meny">Meny</div> 
 
    <div id="side-meny"> 
 
     <p>sidemeny</p> 
 
     </div> 
 
     <div id="block"> 
 
     <div id="innhold"> 
 
     <p>innhold</p> 
 
     </div> 
 
     <div id="footer"> 
 
     <p>footer</p> 
 
     </div> 
 
     </div>