中心 div 在网站中间

Center div in middle of site

我目前有两个 div,我想将父 div 在页面上居中,这样无论我是否缩放 in/out 父 div 将始终位于页面中央。

.marioHeader {
  background-image: url("resources/marioBackground.jpg");
  background-size: 1800px;
  background-position: bottom;
  display: flex;
  justify-content: center;
  align-items: center;
  background-repeat: repeat-x;
  background-color: #2596be;
  margin-top: 50px;
  text-align: center;
  flex-direction: column;
  border-style: solid;
  border-width: 10px;
  margin-bottom: 350px;
  max-width: 1800px;
  margin-left: auto;
  margin-right: auto;
}

.headermario {
  background-image: url("resources/banner.png");
  background-size: 600px;
  background-repeat: no-repeat;
  background-position: bottom;
  background-color: red;
  height: 200px;
  width: 90%;
  margin-bottom: 100px;
  border-style: solid;
  border-width: 10px;
}

.topnav {
  overflow: hidden;
  display: flex;
  justify-content: center;
  margin-top: 230px;
}

<div class="marioHeader"><h1 class="title">Super Mario</h1><div class="headermario"><div class="topnav"><a href="menu/info.html">About</a><a href="menu/history.html">History</a></div></div></div>
<div class="marioHeader">
  <h1 class="title">Super Mario</h1>
  <div class="headermario">
    <div class="topnav">
      <a href="menu/info.html">About</a>
      <a href="menu/history.html">History</a>
    </div>
  </div>
</div>

现在看起来像这样:

但我希望它看起来像这样:

删除 .marioHeader 上的 margin,然后将代码嵌套在 .container 中。用 min-height: 100vh;。然后,您可以使用 align-items: center;justify-content: center; 在这个新的父容器上设置 display: flex; 以使其居中。

.marioHeader {
  background-image: url("resources/marioBackground.jpg");
  background-size: 1800px;
  background-position: bottom;
  display: flex;
  justify-content: center;
  align-items: center;
  background-repeat: repeat-x;
  background-color: #2596be;
  width: 100%;
  text-align: center;
  flex-direction: column;
  border-style: solid;
  border-width: 10px;
  max-width: 1800px;
}

.headermario {
  background-image: url("resources/banner.png");
  background-size: 600px;
  background-repeat: no-repeat;
  background-position: bottom;
  background-color: red;
  height: 200px;
  width: 90%;
  margin-bottom: 100px;
  border-style: solid;
  border-width: 10px;
}

.topnav {
  overflow: hidden;
  display: flex;
  justify-content: center;
}

.container {
  min-height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
}
<div class="container">

  <div class="marioHeader">
    <h1 class="title">Super Mario</h1>
    <div class="headermario">
      <div class="topnav">
        <a href="menu/info.html">About</a>
        <a href="menu/history.html">History</a>
      </div>
    </div>
  </div>
  
</div>

将所有内容添加到一个 html 文件中。评论了一些定义容器边距的现有 css。并添加

width: 100%; height: 100vh; display: flex; justify-content: center; align-items: center;

使其居中。基本思想是包含 div 并将 div 移动到容器的中心。 快乐的黑客攻击。干杯。

<!doctype html>
<html>

<head>
    <meta charset="utf-8">
    <title>Super Mario</title>
    <style type="text/css">
        @charset "utf-8";
        /* CSS Document */

        .nav {
            height: 100%;
            width: 0;
            position: fixed;
            z-index: 1;
            top: 0;
            left: 0;
            background-color: #111;
            overflow-x: hidden;
            padding-top: 60px;
            transition: 0.5s;
        }

        .nav a {
            padding: 8px 8px 30px 65px;
            text-decoration: none;
            font-size: 35px;
            color: #818181;
            display: block;
            transition: 0.3s;
            font-weight: 500;
        }

        .nav a:hover {
            color: #f1f1f1;
        }

        .nav .closebtn {
            position: absolute;
            top: 0;
            right: 25px;
            font-size: 36px;
            margin-left: 50px;
        }

        .menu {
            font-size: 1.8vw;
            position: absolute;
            font-weight: bolder;
        }

        #main {
            transition: margin-left .5s;
            /* padding: 10px; */
        }

        @media screen and (max-height: 450px) {
            .nav {
                padding-top: 15px;
            }

            .nav a {
                font-size: 18px;
            }
        }

        .headerText {
            text-align: center;
        }

        .marioHeader {
            background-image: url("resources/marioBackground.jpg");
            background-size: 1800px;
            /* height: 450px; */
            background-position: bottom;
            display: flex;
            justify-content: center;
            align-items: center;
            background-repeat: repeat-x;
            background-color: #2596be;
            margin-top: 50px;
            text-align: center;
            flex-direction: column;
            border-style: solid;
            border-width: 10px;
            /* margin-bottom: 350px; */
            max-width: 1800px;
            /* margin-left: auto;
            margin-right: auto; */

        }

        .title {
            font-size: 50px;
            font-weight: bolder;
        }

        .headermario {
            background-image: url("resources/banner.png");
            background-size: 600px;
            background-repeat: no-repeat;
            background-position: bottom;
            background-color: red;
            height: 200px;
            min-width: 70%;
            margin-bottom: 100px;
            border-style: solid;
            border-width: 10px;
        }

        .topnav {
            overflow: hidden;
            display: flex;
            justify-content: center;
            margin-top: 230px;
        }

        .topnav a {
            float: left;
            color: red;
            text-align: center;
            padding: 14px 16px;
            text-decoration: none;
            font-size: 23px;
            border-left: 1px solid;
            border-right: 1px solid;
            text-shadow: #000 0px 0px 1px, #000 0px 0px 1px, #000 0px 0px 1px, #000 0px 0px 1px, #000 0px 0px 1px, #000 0px 0px 1px, #000 0px 0px 1px, #000 0px 0px 1px;

        }

        .topnav a:hover {
            background-color: #ddd;
            color: black;
        }

        .menu {
            cursor: pointer;
        }

        .aboutp {
            width: 1000px;
            text-align: center;
            display: block;
            margin: auto;
        }

        .mario {
            display: block;
            margin-left: auto;
            margin-right: auto;
            width: 200px;
        }

        .topContent {
            background-color: red;
            height: 100px;
            width: 70%;
            margin: auto;
            justify-content: center;
            align-items: center;
            display: flex;
            max-width: 700px;
        }

        .mainContent {
            height: 100%;
            width: 100%;
            margin: 0 auto 50px;
            justify-content: center;
            align-items: center;
            display: flex;
            flex-wrap: wrap;
            max-width: 768px;

        }

        .left {
            width: 15%;
        }

        .right {
            width: 15%;
        }

        .center {
            width: 70%;
            background-color: antiquewhite;
            min-height: 50%;
        }

        .bottom {
            background-color: red;
            width: 100%;
            height: 100px;
            max-width: 1800px;
            margin: auto;
        }

        body {
            background-color: saddlebrown;
            margin: 0 auto;
            display: flex;
            flex-direction: column;
        }

        .mariogif {
            float: right;
            width: 200px;
            margin: auto 20px auto 10px;
        }
    </style>
    <script type="text/javascript">
        function openNav() {
            document.getElementById("nav").style.width = "250px";
            document.getElementById("main").style.marginLeft = "250px";
        }

        function closeNav() {
            document.getElementById("nav").style.width = "0";
            document.getElementById("main").style.marginLeft = "0";
        }
    </script>
</head>

<body>

    <div id="nav" class="nav">
        <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>
        <a href="index.html">Home</a>
        <a href="menu/info.html">About</a>
        <a href="menu/history.html">History</a>
    </div>
    <span class="menu" onclick="openNav()">&#9776; Menu</span>
    <div id="main" style="width: 100%; height: 100vh; display: flex; justify-content: center; align-items: center;">

        <div class="marioHeader" style="width: 70%">
            <h1 class="title">Super Mario</h1>
            <div class="headermario">
                <div class="topnav">
                    <a href="menu/info.html">About</a>
                    <a href="menu/history.html">History</a>
                </div>
            </div>

        </div>


    </div>

</body>

</html>