【发布时间】:2019-09-24 20:40:04
【问题描述】:
我正在尝试使用 flexbox 布局来布局网站。主要目标是有一个页眉、一个页脚和一个向左的导航。主要部分和侧面部分应放置在中间和右侧。到目前为止,我使用以下方法让它工作:
html {
font-family: sans-serif;
font-size: 1rem;
}
* {
box-sizing: border-box;
padding: 0;
border: 0;
margin: 0;
}
html * {
/* debugging */
border: 1px dotted hotpink;
}
body {
display: flex;
flex-flow: row wrap;
/* height: 100vh; */
}
nav {
width: 10%;
}
main {
width: 75%;
}
aside {
width: 15%;
}
header, footer {
width: 100%;
text-align: center;
background-color: hotpink;
}
main {
flex: 1 1 auto;
}
nav {
background-color: lightblue;
}
nav ul {
display: flex;
flex-flow: column nowrap;
list-style-type: none;
}
nav ul li:hover {
background-color: royalblue;
}
nav ul li a {
display: block;
text-decoration: none;
padding: 0.5em;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="main.css">
<title>Document</title>
</head>
<body>
<header>
<h1>THIS IS THE REALLY BIG HEADER</h1>
</header>
<nav>
<ul>
<li><a href="#">menu1</a></li>
<li><a href="#">menu2</a></li>
<li><a href="#">menu3</a></li>
<li><a href="#">menu4</a></li>
<li><a href="#">menu5</a></li>
</ul>
</nav>
<main>Lorem ipsum dolor sit amet consectetur adipisicing elit. Fuga unde consequatur laborum cupiditate odio ipsa
cumque, dolorem temporibus aut ipsam commodi autem maiores delectus non vitae recusandae magni consequuntur ab!
</main>
<aside>aside</aside>
<footer>(c) by me</footer>
</body>
</html>
但是:使用线路时 /* 高度:100vh; */ 所有组件都被拉伸以使用整个屏幕高度。我的意图是让导航、主要和侧面拉伸,但让页眉和页脚只使用他们需要的空间。我怎样才能做到这一点?
【问题讨论】: