1、使用header footer
注意使用display:flex flex-direction:column ,我是用direction不管用
<template>
<div class="wrap">
<header>头部</header>
<div class="main">
<!-- main -->
<div class="left">left</div>
<div class="right">right</div>
</div>
<footer>底部</footer>
</div>
</template>
<script setup lang="ts">
</script>
<style scoped>
* {
margin: 0;
padding: 0;
}
body,
html,
#app {
margin: 0;
padding: 0;
height: 100%;
width: 100%;
background: green;
}
.wrap {
display: flex;
flex-direction: column;
background: yellow;
height: 100%;
}
header {
height: 50px;
background: red;
line-height: 50px;
text-align: center;
}
footer {
height: 50px;
background: blue;
line-height: 50px;
text-align: center;
}
.main {
height: 100%;
display: flex;
flex-direction: row;
}
.left {
width: 50px;
height: 100%;
background: orange;
}
.right {
width: 100%;
height: 100%;
background: orchid;
}
</style>
2、使用div
<template>
<div class="wrap">
<div class="header">顶部1</div>
<div class="main">
<!-- main -->
<div class="left">left</div>
<div class="right">right</div>
</div>
<div class="footer">底部1</div>
</div>
</template>
<script setup lang="ts">
</script>
<style scoped>
/* * { 这些放到app.vue中
margin: 0;
padding: 0;a
}
body,
html,
#app {
margin: 0;
padding: 0;
height: 100%;
width: 100%;
background: green;
} */
.wrap {
display: flex;
flex-direction: column;
background: yellow;
height: 100%;
}
.header {
height: 50px;
background: red;
line-height: 50px;
text-align: center;
}
.footer {
height: 50px;
background: blue;
line-height: 50px;
text-align: center;
}
.main {
height: 100%;
display: flex;
flex-direction: row;
}
.left {
width: 50px;
height: 100%;
background: orange;
}
.right {
width: 100%;
height: 100%;
background: orchid;
}
</style>
3、网上的,使用relactive 和absolute
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<meta charset="utf-8" />
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html, body {
height: 100%;
}
.wrap {
display: flex;
flex-direction: column;
height: 100%;
}
header {
height: 50px;
line-height: 50px;
text-align: center;
background-color: #ccc;
border-bottom: 1px solid #999;
}
footer {
height: 50px;
line-height: 50px;
text-align: center;
background-color: #ccc;
border-top: 1px solid #999;
}
.main {
flex: 1;
position: relative;
}
.panel {
position: absolute;
width: 100%;
height: 100%;
background-color: #ccc;
}
</style>
</head>
<body>
<div class="wrap">
<header>
头部
</header>
<div class="main">
<div class="panel">
<pre>
父容器position:relative;
子元素position:absolute;
width: 100%;
height:100%;
</pre>
</div>
</div>
<footer>
底部
</footer>
</div>
</body>
</html>