1
我想了解HTML結構如何影響CSS Grid Layout Module規範。我正在使用啓用了實驗性功能的Chrome Canary。爲什麼我的HTML結構不能使用CSS網格佈局?
附加的代碼按預期工作,但將nav和search僅放置在標記標記中用於語義拋出CSS網格放置。
我錯過了什麼能夠使用CSS網格模塊,並仍然保持我的語義標題包含導航,品牌和搜索包裹在我的標題標記?
html {
box-sizing: border-box;
min-height: 2000px;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
.wrapper {
width: 100%;
display: grid;
grid-template-columns: 20% auto 20%;
grid-template-rows: 50px auto 50px;
background-color: #fff;
color: #444;
}
.mainheader {
grid-column: 1/span 3;
grid-row: 1;
background: #39444C;
}
.brand {
height: 100%;
margin: auto;
color: #FFFFFF;
background: #2E3840;
}
.search {
grid-column: 3;
grid-row: 1;
}
.navbar {
grid-column: 2;
grid-row: 1;
background: #39444C;
}
ul {
padding: 12px;
margin: 0;
}
.navbar li {
display: inline;
padding: 10px;
}
.navbar li a {
color: #9CA19A;
text-decoration: none;
font-size: 1.1rem;
}
.navbar a:hover {
color: #00A5D5;
}
.sidenav {
grid-column: 1;
grid-row: 2;
background: #F2F2F2;
}
.content {
grid-column: 2;
grid-row: 2;
background: yellow;
}
.mainfooter {
background: gray;
grid-column: 1/span 2;
grid-row: 3;
}
.mainheader h1 {
font-size: 2.8vw;
}
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="styles.css" />
</head>
<body>
<div class="wrapper">
<header class="mainheader">
<h1 class="brand">Simply Expense</h1>
</header>
<nav class="navbar">
<ul>
<li><a href="#">Expenses</a>
</li>
<li><a href="#">Receipts</a>
</li>
<li><a href="#">Reports</a>
</li>
</ul>
</nav>
<div class="search">
<button>test</button>
<input type="text">
</div>
<aside class="sidenav">
Side nav
</aside>
<div class="content">
<button>test</button>
<button>test</button>
<button>test</button>
</div>
<footer class="mainfooter">
Footer
</footer>
</div>
</body>
</html>