2017-04-17 185 views
1

我想讓我的一個div有和我以前的div一樣的高度。我使用百分比的寬度和高度(所以它在移動設備上看起來也更好,我也嘗試將父元素設置爲100%的寬度和高度(在幾篇論壇帖子中看到,但沒有工作),我也使用顯示嘗試:。表單元格,也沒有工作,這是我如何設置長相:我怎樣才能讓我的div和我之前的div兄弟一樣高?

的index.php:

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset = "UTF-8"/> 
     <title>SiteTitle</title> 
     <link rel = "stylesheet" type = "text/css" href = "styles/index.css"/> 
    </head> 
    <body> 
     <div id = "allContent"> 
      <div id = "header"> 
       <div id = "siteLogo"> 
        <h1 id = "title">Site_Title</h1> 
       </div> 
       <div id = "shortMenu"> 
        <a href = "#">Login</a> 
       </div> 
      </div> 
     </div> 
    </body> 
</html> 

index.css:

body { 
    background-color: rgb(0, 0, 0); 
    margin: 0px; 
    padding: 0px; 
    color: rgb(192, 74, 0); 
} 

div#allContent { 
    width: 80%; 
    margin: auto; 
} 

div#allContent div#header { 
    margin: 0px; 
    padding: 0px; 
} 

div#allContent div#header div#siteLogo { 
    margin: 0px; 
    padding: 0px; 
    width: 70%; 
    border: 1px solid blue; 
    float: left; 
} 

div#allContent div#header div#siteLogo h1#title { 
    margin: 0px; 
    padding: 0px; 
    font-size: 300%; 
    font-family: Sans-Serif; 
} 

div#allContent div#header div#shortMenu { 
    width: 20%; 
    border: 1px solid green; 
    float: left; 
} 

div#allContent div#header div#shortMenu a { 
    font-family: Sans-Serif; 
    color: rgb(204, 204, 204); 
    text-decoration: none; 
} 

不知道什麼現在檢查.. 我基本上希望的底部鏈接排列在網站標題的底部。我稍後可能會將其更改爲徽標圖像,因此高度可能會發生變化,如果我決定在路上多次更改這些值,則不需要更改這些值。現在,Login鏈接位於頁面的頂部。

編輯:我添加以下代碼行,但它給每個div的50%的寬度

div#allContent div#header { 
    margin: 0px; 
    padding: 0px; 
    display: flex; 
} 

div#allContent div#header div { 
    flex: 1; 
} 

回答

1

使用display:table-cell

body { 
 
    background-color: rgb(0, 0, 0); 
 
    margin: 0px; 
 
    padding: 0px; 
 
    color: rgb(192, 74, 0); 
 
} 
 

 
div#allContent { 
 
    width: 80%; 
 
    margin: auto; 
 
} 
 

 
div#allContent div#header { 
 
    margin: 0px; 
 
    padding: 0px; 
 
} 
 

 

 
div#allContent div#header div#siteLogo h1#title { 
 
    margin: 0px; 
 
    padding: 0px; 
 
    font-size: 300%; 
 
    font-family: Sans-Serif; 
 
} 
 

 

 
div#allContent div#header div#shortMenu a { 
 
    font-family: Sans-Serif; 
 
    color: rgb(204, 204, 204); 
 
    text-decoration: none; 
 
} 
 
div#allContent div#header div#shortMenu { 
 
    width: 30%; 
 
    border: 1px solid green; 
 
    display: table-cell; 
 
    vertical-align: middle; 
 
} 
 

 
div#allContent div#header div#siteLogo { 
 
    margin: 0px; 
 
    padding: 0px; 
 
    width: 70%; 
 
    border: 1px solid blue; 
 
    display: table-cell; 
 
} 
 
div#allContent div#header { 
 
    margin: 0px; 
 
    padding: 0px; 
 
    width: 100%; 
 
    display: table; 
 
}
<div id = "allContent"> 
 
      <div id = "header"> 
 
       <div id = "siteLogo"> 
 
        <h1 id = "title">Site_Title</h1> 
 
       </div> 
 
       <div id = "shortMenu"> 
 
        <a href = "#">Login</a> 
 
       </div> 
 
      </div> 
 
     </div>

使用display:flex

試試這個代碼

替換這個CSS代碼

div#allContent div#header div { 
    flex: 1 auto; 
} 

body { 
 
    background-color: rgb(0, 0, 0); 
 
    margin: 0px; 
 
    padding: 0px; 
 
    color: rgb(192, 74, 0); 
 
} 
 

 
div#allContent { 
 
    width: 80%; 
 
    margin: auto; 
 
} 
 

 
div#allContent div#header { 
 
    margin: 0px; 
 
    padding: 0px; 
 
} 
 

 
div#allContent div#header div#siteLogo { 
 
    margin: 0px; 
 
    padding: 0px; 
 
    width: 70%; 
 
    border: 1px solid blue; 
 
    float: left; 
 
} 
 

 
div#allContent div#header div#siteLogo h1#title { 
 
    margin: 0px; 
 
    padding: 0px; 
 
    font-size: 300%; 
 
    font-family: Sans-Serif; 
 
} 
 

 
div#allContent div#header div#shortMenu { 
 
    width: 20%; 
 
    border: 1px solid green; 
 
    float: left; 
 
} 
 

 
div#allContent div#header div#shortMenu a { 
 
    font-family: Sans-Serif; 
 
    color: rgb(204, 204, 204); 
 
    text-decoration: none; 
 
} 
 
div#allContent div#header { 
 
    margin: 0px; 
 
    padding: 0px; 
 
    display: flex; 
 
} 
 

 
div#allContent div#header div { 
 
    flex: 1 auto; 
 
}
<div id = "allContent"> 
 
      <div id = "header"> 
 
       <div id = "siteLogo"> 
 
        <h1 id = "title">Site_Title</h1> 
 
       </div> 
 
       <div id = "shortMenu"> 
 
        <a href = "#">Login</a> 
 
       </div> 
 
      </div> 
 
     </div>

+0

我想通了柔性的風格,但我喜歡用表格單元更好,因爲我覺得我有一點點更多的控制。不知道我以前在嘗試什麼,但它的工作原理。我必須再次查看CSS,這已經過了大概3到4年了。 – Vince

+0

乾杯....... :) – Amal

0

我改變了以下選擇器。請注意顯示:inline-block;是爲了防止ie11可能的錯誤。另外,爲了簡潔起見,我沒有包含供應商前綴樣式。

div#allContent div#header div { 
    flex: 1; 
    display: inline-block; 
    display: flex; 
    justify-content: center; 
    align-items: center; 
} 
相關問題