2017-04-17 187 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; 
} 
相关问题