2017-10-28 66 views
0

我試圖使頁面,水平下方菜單的div需要是如下:我如何對齊不同大小的div而不浮

Div1的一個藍色背景

Div2的所述一個紅色背景(用它裏面黃色背景元素)

DIV3是具有綠色背景

我需要DIV 1爲左上,DIV 2是在右邊,和DIV 3是在左下方,所以他們出現這種方式:https://imgur.com/a/bp45n

HTML

<div class="top"> 
    <div class="left"> 
     Left 
    </div> 
    <div class="right"> 
     Right 
    </div> 
</div> 
<div class="navigation"> 

    <div class="menu"> 
    <input type="button" value="Option 1" /> 
     <div class="submenu"> 
     <a href="#">Link 1</a> 
     <a href="#">Link 2</a> 
     <a href="#">Link 3</a> 
     </div> 
    </div> 
    <div class="menu"> 
    <input type="button" value="Option 2" /> 
     <div class="submenu"> 
     <a href="#">Link 4</a> 
     <a href="#">Link 5</a> 
     <a href="#">Link 6</a> 
     </div> 
    </div> 
    <div class="menu"> 
    <input type="button" value="Option 3" /> 
     <div class="submenu"> 
     <a href="#">Link 7</a> 
     <a href="#">Link 8</a> 
     <a href="#">Link 9</a> 
     </div> 
    </div> 
    <div class="menu"> 
    <input type="button" value="Option 4" /> 
     <div class="submenu"> 
     <a href="#">Link 10</a> 
     <a href="#">Link 11</a> 
     <a href="#">Link 12</a> 
     </div> 
    </div> 
    <div class="menu"> 
     <input type="button" value="Option 5" /> 
     <div class="submenu"> 
      <a href="#">Link 13</a> 
      <a href="#">Link 14</a> 
      <a href="#">Link 15</a> 
     </div> 
    </div> 
</div> 
<div class="topleft"> 
    Korisni linkovi: 
    <ul> 
     <li><a href="#">Home</a></li> 
     <li><a href="#">Settings</a></li> 
     <li><a href="#">Users</a></li> 
     <li><a href="#">Orders</a></li> 
    </ul> 
</div> 



<div class="contentright"> 
News 
    <div class="news"> 
    <pre>Neki tekst za neke novine, 
    detaljnije na linku ispod 
    </pre> 
    <a href="#">Detaljnije</a> 
    </div> 
    <div class="news"> 
    <pre>Neki tekst za neke novine, 
    detaljnije na linku ispod 
    </pre> 
    <a href="#">Detaljnije</a> 
    </div> 
    <div class="news"> 
    <pre>Neki tekst za neke novine, 
    detaljnije na linku ispod 
    </pre> 
    <a href="#">Detaljnije</a> 
    </div> 
    <div class="news"> 
    <pre>Neki tekst za neke novine, 
    detaljnije na linku ispod 
    </pre> 
    <a href="#">Detaljnije</a> 
    </div> 
    <div class="news"> 
    <pre>Neki tekst za neke novine, 
    detaljnije na linku ispod 
    </pre> 
    <a href="#">Detaljnije</a> 
    </div> 
    <div class="news"> 
    <pre>Neki tekst za neke novine, 
    detaljnije na linku ispod 
    </pre> 
    <a href="#">Detaljnije</a> 
    </div> 
</div> 
<div class="bottomleft"> 
<pre> 
Bio jednom jedan zeka 
Bio jednom jedan zeka 
Bio jednom jedan zeka 
Bio jednom jedan zeka 
Bio jednom jedan zeka 
Bio jednom jedan zeka 
</pre> 
</div> 
</body> 

CSS

body 
{ 
    /*background-image:url("background.jpg");*/ 
} 
.top 
{ 
    margin-top:5%; 
    color:white; 
    font-size:20px; 
    white-space:nowrap; 
    width: 80%; 
    text-align: center; 
    padding-bottom:5%; 
} 
.top .left 
{ 
    display:inline-block; 
    width: 40%; 
} 
.top .right 
{ 
    display:inline-block; 
    text-align:right; 
    width: 40%; 
} 
.navigation 
{ 
    display:inline; 
    margin-left:10%; 
    margin-right:10%; 
    text-align:center; 
    font-size:0; 
} 
.menu 
{ 
    display:inline-block; 
    position:relative; 
    font-size:15px; 
    border:5px solid black; 
} 
.menu input 
{ 
    height:50px; 
    width:200px; 
    background-color:black; 
    color: white; 
    letter-spacing:1px; 
    border: 1px solid black; 
} 
.menu:first-child 
{ 
    border-top-left-radius:20px; 
} 
.menu:last-child 

{ 
    border-top-right-radius:20px; 
} 

.menu:hover 

{ 
    border-color:gray; 
} 

.menu input:hover 

{ 
    background-color:gray; 
    color:black; 
    border-color:gray; 
} 

.menu:hover .submenu 
{ 
    display:block; 
} 

.submenu 
{ 
    display:none; 
    position:absolute; 
    text-align:center; 
    background-color:gray; 
    width:100%; 
} 
.submenu a 
{ 
    display:block; 
    color:black; 
    text-decoration:none; 
    text-align:center; 
    padding-bottom:6px; 
    padding-top:6px; 
    border:1px solid black; 
    width:100%; 
} 
.submenu a:hover 
{ 
    background-color:black; 
    color:white; 
} 

.submenu a:first-child 
{ 
    border-top:none; 
} 

.topleft 
{ 
    display: inline-block; 
    position:relative; 
    margin-left:10%; 
    margin-top:2%; 
    box-shadow:2px 5px 10px black; 
    color:white; 
    font-size:20px; 
    font-family:verdana; 
    background-color:blue; 
} 
.topleft ul 
{ 
     display:inline; 
     list-style-type:none; 
     margin:inherit; 
} 
.topleft li 
{ 
    padding:15px; 
    margin:inherit; 
} 
.topleft li a 
{ 
    color:white; 
    text-decoration:none; 
} 
.topleft li a:hover 
{ 
    background-color:gray; 
} 
.contentright 
{ 
    display:inline-block; 
    background-color:red; 
    margin-left:10%; 
    position:relative; 
    border:1px solid black; 
} 
.news 
{ 
    background-color:yellow; 
    display:inline-block; 
    border:1px solid black; 
} 
.bottomleft 
{ 
    background-color:green; 
    display: block; 
    margin-left:10%; 
    box-shadow:2px 5px 10px black; 
    width:155px; 
} 

這裏的鏈接的jsfiddle

https://jsfiddle.net/Le6y0wx8/

請請記住,我不允許使用浮動屬性。

+0

你嘗試過將兩者的div(1和3)與固定寬度的容器?如果沒有足夠的空間水平元素將顯示在下面。或嘗試播放負邊距/絕對位置。 – mastaH

+0

我正在做這個練習,後來我應該學習如何爲不同的分辨率製作這些頁面,在這種情況下使用手動設置寬度是否是一種好習慣? – WhatAmIDoing

+0

這一切都取決於你的網頁將顯示什麼。如果這3個div全部存在,那麼將寬度定義爲%。如果div 1和3是菜單,並且在窗口被調整大小時不應該改變大小,那麼將其設置爲像素,並讓div2佔據剩餘空間。現在你能做的最好的就是嘗試不同的可能性,看看它如何去適應它。 – mastaH

回答

0

這裏是fiddle檢查

如果使用Flexbox的設計則是不需要浮法

.container{ 
    display:flex; 
}