2017-10-28 83 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; 
}