2017-06-18 60 views
2

我该如何居中浮动元素,你可以看到这个photo?我想从网页的左侧将它放到中间,但将它保留在页面的顶部?如何将CSS中的浮动元素居中?

下面是HTML的代码:

<html> 
    <head> 
     <title>Batch File Generator | Home</title> 
    </head> 
    <link href="style.css" rel="stylesheet" > 
    <ul> 
     <li><a>Home</a></li> 
     <li><a>Download</a> 
      <ul> 
       <li><a href="32-bit version.exe" download="download">32-bit version</a></li> 
       <li><a href="64-bit version.exe" download="download">64-bit version</a></li> 
      </ul> 
     </li> 
     <li><a>Discussion</a> 
      <ul> 
       <li><a>Community forums</li></a> 
       <li><a>Ask the developers</li></a> 
      </ul> 
     </li> 
     <li><a>News</a></li> 
    </ul> 
</html> 

这里是CSS的代码:

body{ 
    background: url("background.jpg") no-repeat; 
    background-size: cover; 
    font-family: Arial; 
    color: white; 
} 
ul{ 
    margin: 0px; 
    padding: 0px; 
    list-style: none; 
} 
ul li { 
    float: left; 
    width: 200px; 
    height: 40px; 
    background-color: black; 
    opacity: .8; 
    line-height: 40px; 
    text-align: center; 
    font-size: 20px; 
} 
ul li a { 
    text-decoration: none; 
    color: white; 
    display: block; 
} 
ul li a:hover { 
    background-color: green; 
} 
ul li ul li { 
    display: none; 
} 
ul li:hover ul li { 
    display: block; 
} 
+0

为什么你把它漂浮到左侧时,要居中呢?删除浮动并添加'margin:0 auto;' –

+0

谢谢。 “我必须写这个,否则我不能发表评论'因为它太短...” – ange

+0

Dawid Zbinski它没有工作,因为它是一个下拉菜单,并使用“边距:0自动;”白色书写是,在页面顶部的中间,但它垂直对齐,下拉效果不起作用。 – ange

回答

3

对于HTML代码,使用:

<div class="wrapper"> 

    <div class="middle-content"> 
     <ul> 
    <li><a>Home</a></li> 
    <li><a>Download</a> 
     <ul> 
      <li><a href="32-bit version.exe" download="download">32-bit version</a></li> 
      <li><a href="64-bit version.exe" download="download">64-bit version</a></li> 
     </ul> 
    </li> 
    <li><a>Discussion</a> 
     <ul> 
      <li><a>Community forums</a></li> 
      <li><a>Ask the developers</a></li> 
     </ul> 
    </li> 
    <li><a>News</a></li> 
</ul> 
    </div> 

    </div> 

对于css代码:

html{ 
    height: 100%; 
} 
body{ 
    background: url("background.jpg") no-repeat; 
    background-size: cover; 
    font-family: Arial; 
    color: white; 
    height: 100%; 
} 
.wrapper{ 
    display: table; 
    width: 100%; 
    height: 100%; 
} 
.middle-content{ 
    display: table-cell; 
    vertical-align:middle; 
    width: 100%; 
} 
ul{ 
    margin: 0px; 
    padding: 0px; 
    list-style: none; 
} 
ul li { 
    float: left; 
    width: 200px; 
    height: 40px; 
    background-color: black; 
    opacity: .8; 
    line-height: 40px; 
    text-align: center; 
    font-size: 20px; 
} 
ul li a { 
    text-decoration: none; 
    color: white; 
    display: block; 
} 
ul li a:hover { 
    background-color: green; 
} 
ul li ul li { 
    display: none; 
} 
ul li:hover ul li { 
    display: block; 
} 
+0

@ange使html和body'height:100%'并使用'display:table'和'display:table-cell'和'vertical-align:middle' 请按照答案。你会得到解决方案。 –

+0

谢谢,我会尝试。 – ange

+0

好吧,让我知道你是否面临任何问题 –

0

Flexbox解决方案。

* { 
 
    box-sizing: border-box; 
 
} 
 

 
html, 
 
body, 
 
ul { 
 
    padding: 0; 
 
    margin: 0; 
 
} 
 

 
nav { 
 
    width: 100%; 
 
    background-color: darkgray; 
 
} 
 

 
li { 
 
    list-style: none; 
 
    padding: 15px; 
 
    border: thin solid lightgray; 
 
    position: relative; 
 
    background-color: white; 
 
} 
 

 
li>a { 
 
    display: inline-block; 
 
    text-decoration: none; 
 
} 
 

 
.main-menu { 
 
    display: flex; 
 
    justify-content: center; 
 
} 
 

 
.sub-menu { 
 
    display: none; 
 
    position: absolute; 
 
    left: 0px; 
 
    width: 100%; 
 
    margin-top: 15px; 
 
} 
 

 
.main-menu li:hover { 
 
    background-color: lightgreen; 
 
} 
 

 
.sub-menu li:hover { 
 
    background-color: lightblue; 
 
} 
 
.main-menu li:hover>.sub-menu { 
 
    display: block; 
 
}
<nav> 
 
    <ul class="main-menu"> 
 
    <li><a>Home</a></li> 
 
    <li><a>Download</a> 
 
     <ul class="sub-menu"> 
 
     <li><a href="32-bit version.exe" download="download">32-bit version</a></li> 
 
     <li><a href="64-bit version.exe" download="download">64-bit version</a></li> 
 
     </ul> 
 
    </li> 
 
    <li><a>Discussion</a> 
 
     <ul class="sub-menu"> 
 
     <li><a href="#">Community forums</a></li> 
 
     <li><a href="#">Ask the developers</a></li> 
 
     </ul> 
 
    </li> 
 
    <li><a>News</a></li> 
 
    </ul> 
 
</nav>