css - 在 CSS 网格线框中设置左右页脚
问题描述
如何使用 CSS 网格将左页脚保持在左侧,将右页脚保持在右侧?我一直在从另一个codepen修改线框,并添加了 left-footer 和 right-footer 类以与页脚 HTML5 标记一起使用,并在 css 代码中添加了 .nav 以及 .left-footer 和 .right-footer 部分.
“grid-template-areas:”的第四行是:“footer footer footer footer”;
我需要将其更改为以下内容吗?:“footer left-footer right-footer footer”;
如果是这样,我如何定义它们以便网格知道如何处理它们?谢谢你。
我的密码笔在这里。
<!doctype html>
<!-- original source from https://codepen.io/mercuryworks/pen/VWBqdx-->
<html lang="en">
<head>
<meta charset="utf-8">
<title>Week 2 dd</title>
<link href="css/style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="wrapper">
<header class="header">
Header
</header>
<nav class ="nav">Nav</nav>
<main class="main">
Main content
</main>
<footer class="footer">
Footer
<footer class="left-footer">
<p>Left Footer<p></footer>
<footer class="right-footer">
<p> Right Footer<p></footer>
</footer>
</div>
</body>
</html>
.wrapper {
background-color: yellow;
height: 120vh;
display: grid;
grid-template-columns: 15rem 15rem 15rem 15rem;
grid-template-rows: auto 1fr auto;
grid-template-areas:
"header header header header"
"nav nav nav nav"
"main main main main"
"footer footer footer footer";
max-width: 66rem;
width: 100%;
margin-left: auto;
margin-right: auto;
border: 1px solid #ccc;
@media (max-width: 36rem) {
display: flex;
flex-direction: column;
}
}
.header {
max-height: 5rem;
margin: 1% 1% 1% 1%;
grid-area: header;
padding: 1rem;
border-bottom: 1px solid #ccc;
@media (max-width: 36rem) {
order: 1;
}
}
.nav {
margin: 1% 1% 1% 1%;
max-height: 1rem;
grid-area: nav;
padding: 1rem;
border-bottom: 1px solid #ccc;
@media (max-width: 36rem) {
order: 1;
}
}
.main {
grid-area: main;
padding: 1rem;
@media (max-width: 36rem) {
order: 1;
}
}
.aside {
grid-area: sidebar;
padding: 1rem;
background-color: #eee;
border-right: 1px solid #ccc;
@media (max-width: 36rem) {
order: 3;
border-right: 0;
border-top: 1px solid #ccc;
}
}
.footer {
background-color: #ccc;
grid-area: footer;
padding: 1rem;
border-top: 1px solid #ccc;
@media (max-width: 36rem) {
order: 4;
}
}
.left-footer {
background-color: #ccc;
grid-area: footer;
padding: 1rem;
border-top: 1px solid #ccc;
@media (max-width: 36rem) {
order: 4;
}
}
.right-footer {
grid-area: footer;
padding: 1rem;
border-top: 1px solid #ccc;
@media (max-width: 36rem) {
order: 4;
}
}
// Setup
* {
box-sizing: border-box;
}
html {
font-family: Verdana, "sans-serif";
font-size: 16px;
margin: 0;
padding: 0;
}
body {
font-size: 1rem;
padding: 1rem;
margin: 0;
background-color: white;
}
我需要得到这样的结果:
解决方案
您需要摆脱主要的包装页脚并将两者left-footer
都right-footer
放在wrapper
.
所以它会是这样的:
.wrapper {
background-color: yellow;
height: 120vh;
display: grid;
grid-template-rows: auto 1fr auto;
grid-template-areas: "header header header header" "nav nav nav nav" "main main main main" "left-footer left-footer right-footer right-footer";
max-width: 66rem;
width: 100%;
margin-left: auto;
margin-right: auto;
border: 1px solid #ccc;
@media (max-width: 36rem) {
display: flex;
flex-direction: column;
}
}
.header {
max-height: 5rem;
margin: 1% 1% 1% 1%;
grid-area: header;
padding: 1rem;
border-bottom: 1px solid #ccc;
@media (max-width: 36rem) {
order: 1;
}
}
.nav {
margin: 1% 1% 1% 1%;
max-height: 1rem;
grid-area: nav;
padding: 1rem;
border-bottom: 1px solid #ccc;
@media (max-width: 36rem) {
order: 1;
}
}
.main {
grid-area: main;
padding: 1rem;
@media (max-width: 36rem) {
order: 1;
}
}
.aside {
grid-area: sidebar;
padding: 1rem;
background-color: #eee;
border-right: 1px solid #ccc;
@media (max-width: 36rem) {
order: 3;
border-right: 0;
border-top: 1px solid #ccc;
}
}
.left-footer {
background-color: #ccc;
grid-area: left-footer;
padding: 1rem;
border-top: 1px solid #ccc;
@media (max-width: 36rem) {
order: 4;
}
}
.right-footer {
background-color: #ccc;
grid-area: right-footer;
padding: 1rem;
border-top: 1px solid #ccc;
@media (max-width: 36rem) {
order: 4;
}
}
// Setup
* {
box-sizing: border-box;
}
html {
font-family: Verdana, "sans-serif";
font-size: 16px;
margin: 0;
padding: 0;
}
body {
font-size: 1rem;
padding: 1rem;
margin: 0;
background-color: white;
}
<!doctype html>
<!-- original source from https://codepen.io/mercuryworks/pen/VWBqdx-->
<html lang="en">
<head>
<meta charset="utf-8">
<title>Week 2 dd</title>
<link href="css/style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="wrapper">
<header class="header">
Header
</header>
<nav class="nav">Nav</nav>
<main class="main">
Main content
</main>
<footer class="left-footer">
<p>Left Footer
<p>
</footer>
<footer class="right-footer">
<p> Right Footer
<p>
</footer>
</div>
</body>
</html>
所以当你更新你的问题时,上面的答案应该是这样的:
.wrapper {
background-color: yellow;
height: 120vh;
display: grid;
grid-template-rows: auto 1fr auto;
grid-template-areas: "header header header header" "nav nav nav nav" "main main main main" "left-footer right-footer right-footer right-footer";
max-width: 66rem;
width: 100%;
margin-left: auto;
margin-right: auto;
border: 1px solid #ccc;
@media (max-width: 36rem) {
display: flex;
flex-direction: column;
}
}
.header {
max-height: 5rem;
margin: 1% 1% 1% 1%;
grid-area: header;
padding: 1rem;
border-bottom: 1px solid #ccc;
@media (max-width: 36rem) {
order: 1;
}
}
.nav {
margin: 1% 1% 1% 1%;
max-height: 1rem;
grid-area: nav;
padding: 1rem;
border-bottom: 1px solid #ccc;
@media (max-width: 36rem) {
order: 1;
}
}
.main {
grid-area: main;
padding: 1rem;
@media (max-width: 36rem) {
order: 1;
}
}
.aside {
grid-area: sidebar;
padding: 1rem;
background-color: #eee;
border-right: 1px solid #ccc;
@media (max-width: 36rem) {
order: 3;
border-right: 0;
border-top: 1px solid #ccc;
}
}
.left-footer {
background-color: #ccc;
grid-area: left-footer;
padding: 1rem;
border-top: 1px solid #ccc;
@media (max-width: 36rem) {
order: 4;
}
}
.right-footer {
background-color: #ccc;
grid-area: right-footer;
padding: 1rem;
border-top: 1px solid #ccc;
@media (max-width: 36rem) {
order: 4;
}
}
// Setup
* {
box-sizing: border-box;
}
html {
font-family: Verdana, "sans-serif";
font-size: 16px;
margin: 0;
padding: 0;
}
body {
font-size: 1rem;
padding: 1rem;
margin: 0;
background-color: white;
}
<!doctype html>
<!-- original source from https://codepen.io/mercuryworks/pen/VWBqdx-->
<html lang="en">
<head>
<meta charset="utf-8">
<title>Week 2 dd</title>
<link href="css/style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="wrapper">
<header class="header">
Header
</header>
<nav class="nav">Nav</nav>
<main class="main">
Main content
</main>
<footer class="left-footer">
<p>Left Footer
<p>
</footer>
<footer class="right-footer">
<p> Right Footer
<p>
</footer>
</div>
</body>
</html>
推荐阅读
- r - R Data.Table 将数据分成组和标签
- ggplot2 - ggplot aes:颜色与时间序列数据缺失的组
- javascript - Cesium 使用 lat long 定位 div 的方式
- java - JOOQ:如何为没有参数的存储过程创建 MockResult?
- android - 将变量从类传递给适配器
- javascript - moment.localeData().longDateFormat("L") 未根据区域设置返回正确的日期格式
- wordpress - 电影院网站 - Wordpress - 加入 Fandango 放映时间
- javascript - 无法在 JavaScript/Angular 中使用字符串 Polation 解析函数
- android - 当firebase中不存在变量时防止返回null
- c++ - 在 C++ 中,为什么我们必须在复制构造函数中传递用户定义的数据类型作为引用而不是在函数中,反之亦然?