css - 使用显示网格时,主要内容部分向下移动,留下很大的间隙

标签 css html css-grid

这是我在这里发表的第一篇文章,因为我真的很困惑。在使用主容器集中所有内容后,我决定转向网格布局,以允许将来添加侧边栏等内容。然而,当我这样做时,我的主要部分已经大幅下移,留下了一个很大的间隙,看起来甚至不是边距,只是空白。这是我的第一次自定义 css、html 网站尝试,因此非常感谢任何帮助。 代码笔: https://codepen.io/weirdflex/pen/MzxqdY 再次感谢!

HTML:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>MayMays</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" media="screen" href="main.css" />
<script src="main.js"></script>
</head>
<body>
<nav class = "main-nav">
    <a href = "#" class="nav-link"><img class="logo" src="/Images/logo.png" alt="Logo"></a>
    <a href = "#" class="nav-link">Home</a>
    <a href = "#" class="nav-link">Revision</a>
    <a href = "#" class="nav-link">Quiz</a>
    <a href = "#" class="nav-link right">Forums</a>
    <a href = "#" class="nav-link right">Contact Us</a>
</nav>

<section class="main-content">
    <div class="container">
        <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Quis animi aliquam consequuntur et illum, nisi porro eaque sint alias accusantium voluptates fugit, rerum nihil voluptas consectetur molestiae accusamus excepturi cupiditate?</p>
    </div>  
</section>

</body>
</html>

CSS:

@import url('https://fonts.googleapis.com/css?family=Roboto:300,400,500,700');

body {
    background-color: #583a7a;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25' viewBox='0 0 2 1'%3E%3Cdefs%3E%3ClinearGradient id='a' gradientUnits='userSpaceOnUse' x1='0' x2='0' y1='0' y2='1' gradientTransform='rotate(178,0.5,0.5)'%3E%3Cstop offset='0' stop-color='%23583a7a'/%3E%3Cstop offset='1' stop-color='%230691b0'/%3E%3C/linearGradient%3E%3ClinearGradient id='b' gradientUnits='userSpaceOnUse' x1='0' y1='0' x2='0' y2='1' gradientTransform='rotate(166,0.5,0.5)'%3E%3Cstop offset='0' stop-color='%23fd9bff' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23fd9bff' stop-opacity='1'/%3E%3C/linearGradient%3E%3ClinearGradient id='c' gradientUnits='userSpaceOnUse' x1='0' y1='0' x2='2' y2='2' gradientTransform='rotate(0,0.5,0.5)'%3E%3Cstop offset='0' stop-color='%23fd9bff' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23fd9bff' stop-opacity='1'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect x='0' y='0' fill='url(%23a)' width='2' height='1'/%3E%3Cg fill-opacity='0'%3E%3Cpolygon fill='url(%23b)' points='0 1 0 0 2 0'/%3E%3Cpolygon fill='url(%23c)' points='2 1 2 0 0 0'/%3E%3C/g%3E%3C/svg%3E");
    background-attachment: fixed;
    background-size: cover;
    font-family: 'Roboto', sans-serif;
    height: 200vh;
    margin: 0;
    display: grid;
    grid-template-columns: 1fr 960px 1fr;
}


body * {
    text-decoration: none;
    color: white;
}

.container {
    width: 900px;
    margin: 0 auto;
}

.logo {
    height: 50px;
}

.main-nav {
    height: 80px;
    width: 100%;
    grid-column: 2;
}

.main-content {
    height: 100vh;
    background: #ffffff57;
    box-shadow: 0px 0px 100px #000000;
    grid-column: 2;
}

.nav-link {
    line-height: 50px;
    vertical-align: middle;
    text-transform: uppercase;
    font-weight: 700;
    padding: 1rem 2rem;
    float: left;
}

.right {
   float: right;
}
PS。请原谅糟糕的格式,不知道人们如何正确地将代码粘贴到此中

最佳答案

您需要从正文 CSS 中删除 height: 200vh; 才能删除出现的新空间。

看看你的设计,我假设你希望你的主要内容由于盒子阴影而“ float ”。我在 .main-content CSS 中添加了 margin-bottom: 50px; 以保持这种效果。

@import url('https://fonts.googleapis.com/css?family=Roboto:300,400,500,700');

body {
    background-color: #583a7a;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25' viewBox='0 0 2 1'%3E%3Cdefs%3E%3ClinearGradient id='a' gradientUnits='userSpaceOnUse' x1='0' x2='0' y1='0' y2='1' gradientTransform='rotate(178,0.5,0.5)'%3E%3Cstop offset='0' stop-color='%23583a7a'/%3E%3Cstop offset='1' stop-color='%230691b0'/%3E%3C/linearGradient%3E%3ClinearGradient id='b' gradientUnits='userSpaceOnUse' x1='0' y1='0' x2='0' y2='1' gradientTransform='rotate(166,0.5,0.5)'%3E%3Cstop offset='0' stop-color='%23fd9bff' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23fd9bff' stop-opacity='1'/%3E%3C/linearGradient%3E%3ClinearGradient id='c' gradientUnits='userSpaceOnUse' x1='0' y1='0' x2='2' y2='2' gradientTransform='rotate(0,0.5,0.5)'%3E%3Cstop offset='0' stop-color='%23fd9bff' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23fd9bff' stop-opacity='1'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect x='0' y='0' fill='url(%23a)' width='2' height='1'/%3E%3Cg fill-opacity='0'%3E%3Cpolygon fill='url(%23b)' points='0 1 0 0 2 0'/%3E%3Cpolygon fill='url(%23c)' points='2 1 2 0 0 0'/%3E%3C/g%3E%3C/svg%3E");
    background-attachment: fixed;
    background-size: cover;
    font-family: 'Roboto', sans-serif;
    margin: 0;
    display: grid;
    grid-template-columns: 1fr 960px 1fr;
}


body * {
    text-decoration: none;
    color: white;
}

.container {
    width: 900px;
    margin: 0 auto;
}

.logo {
    height: 50px;
}

.main-nav {
    height: 80px;
    width: 100%;
    grid-column: 2;
}

.main-content {
    height: 100vh;
    background: #ffffff57;
    box-shadow: 0px 0px 100px #000000;
    grid-column: 2;
    margin-bottom: 50px;
}

.nav-link {
    line-height: 50px;
    vertical-align: middle;
    text-transform: uppercase;
    font-weight: 700;
    padding: 1rem 2rem;
    float: left;
}

.right {
   float: right;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>MayMays</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" media="screen" href="main.css" />
<script src="main.js"></script>
</head>
<body>
<nav class = "main-nav">
    <a href = "#" class="nav-link"><img class="logo" src="/Images/logo.png" alt="Logo"></a>
    <a href = "#" class="nav-link">Home</a>
    <a href = "#" class="nav-link">Revision</a>
    <a href = "#" class="nav-link">Quiz</a>
    <a href = "#" class="nav-link right">Forums</a>
    <a href = "#" class="nav-link right">Contact Us</a>
</nav>

<section class="main-content">
    <div class="container">
        <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Quis animi aliquam consequuntur et illum, nisi porro eaque sint alias accusantium voluptates fugit, rerum nihil voluptas consectetur molestiae accusamus excepturi cupiditate?</p>
    </div>  
</section>

</body>
</html>

关于css - 使用显示网格时,主要内容部分向下移动,留下很大的间隙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53603134/

相关文章:

css - anchor 标签上的边框底部,适用于多行和内联 block / block 显示

html - 在不使用插件的情况下在 Umbraco 中创建动态图像 slider

CSS网格: lines with labels

CSS 网格元素未按预期进行

html - 在 grid-template-columns 中使用 repeat(auto-fit, minmax()) 将一列设置为等宽

javascript - 如何保持相同的填充

php - 单元格内的背景颜色在 fpdf 中没有改变

jquery - 在悬停jquery的图像上显示div

javascript - 单击图像时将坐标附加到 div

html - 将十六进制 HTML 颜色转换为 Amiga colorregister hex(并返回)