html - CSS 垂直居中与 ul/li

标签 html css center centering

我想知道为什么我的 id="subnavigation" 不会垂直居中,我使用的是 top: xxpx; 但由于大多数显示器都不同,所以我有让它在每台显示器的垂直中心。

我尝试使用:

  • justify-content: center
  • 对齐元素:居中
  • 行高:正常
  • vertical align-middle & also top: 50%,

但它不会移动到正确的位置,有什么建议吗?

HTML:

<!DOCTYPE html>
<html>

<head>
<title>FootDiver!</title>

<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="style/style.css" type="text/css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro"
rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Shadows+Into+Light"
rel="stylesheet">

</head>

<body>

<header>
    <nav id="mainnavigation">
         <ul>
            <li><a href="">Startseite</a></li>
            <li><a href="">&Uuml;ber uns</a></li>
            <li><a href="">Join Us!</a>
                <ul>
                    <li><a href="">LogIn</a></li>
                    <li><a href="">Registrierung</a></li>
                </ul>
            </li>
            <li><a href="">Forum</a></li>
            <li><a href="">FAQ</a></li>
            <li><a href="">Newsletter</a></li>
         </ul>
    </nav>
</header>

<div id="subnavigation">
    <nav id="sub">
        <ul>
            <li><a href="">Olympia</a></li>
            <li><a href="">Beef&Beats</a></li>
            <li><a href="">Gantero</a></li>
            <li><a href="">La Roma</a></li>
            <li><a href="">Wok Paradis</a></li>
        </ul>
    </nav>
</div>

<footer>
    <nav id="foot">
        <ul>
            <li><a href="">Impressum</a></li>
            <li><a href="">Datenschutz</a></li>
            <li><a href="">AGB</a></li>
            <li><a href="">Kontakt</a></li>
            <li><a href="">Social Media</a></li>
            <li><a href="">Intern</a></li>
        </ul>
    </nav>
</footer>

<div id="main">
    <h1>Herzlich Wilkommen!</h1>
</div>

</body>
</html>

CSS:(从第 95 行到第 116 行)

body, html {
  background: #F4A460;
  margin: 0;
  padding: 0;
  font-size: 62.5%;
}

@media screen and (min-width: 1200px) {
  html {
    font-size: 63%;
  }
}

header {
  background: #8A4B08;
  position: fixed;
  top: 0;
  width: 100%;
  text-align: center;
  transition: 200ms all;
  height: 7rem;
}

header nav#normal {
  color: #000000;
  display: inline-block;
}

header nav#normal ul {
  margin: 0;
  padding: 0;
  float: left;
  list-style: none;
  position: relative;
  transition: all 300ms;
}

header nav#normal ul li {
  margin: 0;
  padding: 0;
  float: left;
  list-style: none;
  position: relative;
  transition: all 300ms;
}

header nav#normal ul li a {
  display: inline-block;
  padding: 2.17rem;
  float: left;
  min-width: 12rem;
  text-align: center;
  font-size: 2rem;
  color: #000000;
  margin: 0 1px 0 0;
  text-decoration: none;
  background: #deb887;
  font-weight: 300;
  transition: all 300ms;
  font-family: 'Source Sans Pro', sans-serif;
}

header nav#normal ul li:hover > a {
  background: #FFD39B;
}

header nav#normal ul li ul {
  overflow: hidden;
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  transition: 300ms all;
  max-height: 0;
}

header nav#normal ul li:hover > ul {
  max-height: 900px;
}

header nav#normal ul li ul li {
  border-bottom: 1px solid  #8A4B08;
}

div#subnavigation {
  background: #8A4B08;
  position: fixed;
  top: 0;
  width: 166px;
  text-align: center;
  transition: 200ms all;
  height: 1200px;
}

div#subnavigation nav#sub {
  display: inline-block;
}

div#subnavigation nav#sub ul {
  margin: auto;
  padding: 0;
  float: left;
  list-style: none;
  position: relative;
  top: 375px;
  transition: all 300ms;
}

div#subnavigation nav#sub ul li {
  margin: 0;
  padding: 0;
  float: left;
  list-style: none;
  position: relative;
  transition: all 300ms;
}

div#subnavigation nav#sub ul li a {
  display: inline-block;
  padding: 2.17rem;
  float: left;
  min-width: 12rem;
  text-align: center;
  font-size: 2rem;
  color: #000000;
  margin: 0 1px 0 0;
  text-decoration: none;
  background: #deb887;
  font-weight: 300;
  transition: all 300ms;
  font-family: 'Source Sans Pro', sans-serif;
  border-bottom: 1px solid #8A4B08;
  vertical-align: middle;
}

div#subnavigation nav#sub ul li:hover > a {
  background: #FFD39B;
}

footer {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  height: 7rem;
  background-color: #8A4B08;
  text-align: center;
}

footer nav#foot {
  color: #000000;
  display: inline-block;
}

footer nav#foot ul {
  margin: 0;
  padding: 0;
  float: left;
  list-style: none;
  position: relative;
  transition: all 300ms;
}

footer nav#foot ul li {
  margin: 0;
  padding: 0;
  float: left;
  list-style: none;
  position: relative;
  transition: all 300ms;
}

footer nav#foot ul li a {
  display: inline-block;
  padding: 2.17rem;
  float: left;
  min-width: 12rem;
  text-align: center;
  font-size: 2rem;
  color: #000000;
  margin: 0 1px 0 0;
  text-decoration: none;
  background: #deb887;
  font-weight: 300;
  transition: all 300ms;
  font-family: 'Source Sans Pro', sans-serif;
}

footer nav#foot ul li:hover > a {
background: #FFD39B;
}

div#main {
  text-align: left;
  margin-left: 25rem;
  margin-top: 15rem;
}

div#main h1 {
  font-size: 6rem;
  font-family: 'Shadows Into Light', cursive;
}

最佳答案

尝试添加

display: flex;
align-items: center;

到要垂直居中的元素的父元素。 justify-content: center 仅在您使用 flex

时有效

Example

关于html - CSS 垂直居中与 ul/li,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47618573/

相关文章:

javascript - 我想打开 google.com 或用户在窗口中键入的任何其他网站

javascript - 如何将选中的复选框从一个表复制到另一个表

css - JavaFX如何应用CSS主题

ios - 如何使用 ScrollView 缩放到中心?

css - Bootstrap 导航栏中心文本

css - 如何居中 CSS 下拉菜单

javascript - ExtJS 和/或 DHTML 中的事件的 "related target"是什么?

javascript - 通过类选择器复制 jQuery 弹出窗口

表格 Rowspan 与 Fluid Height 的 CSS 等价物

html - 将 RGBA 转换为 HEX