「这是我参与2022首次更文挑战的第13天,活动详情查看:2022首次更文挑战」。
1.1 布局容器
1.1.1 布局容器
使用element-ui的布局容器(Container) 进行页面布局。对页面进行划分(上、下、左、中)
步骤一: 修改src/main.js 导入 element-ui 样式和组件
/* 导入element-ui样式
*/
import 'element-ui/lib/theme-chalk/index.css'
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
/* element-ui所有组件
*/
import ElementUI from 'element-ui'
Vue.use(ElementUI)
Vue.config.productionTip = false
new Vue({
router,
store,
render: h => h(App)
}).$mount('#app')
步骤二: 删除 src/App.vue所有内容, 拷贝布局模板和样式
<template> <div id="app"> <el-container> <el-header>Header</el-header> <el-main>Main</el-main> <el-footer>Footer</el-footer> </el-container> </div> </template> <script> export default { } </script> <style> /* 稍后删除 */ .el-header, .el-footer { background-color: #B3C0D1; color: #333; text-align: center; line-height: 60px; } </style>
1.1.2 reset***.css***
布局页面完成后, 整个body会存在一圈空白, 开发中一般选择重新设置页面样式
步骤一: 百度搜索”reset.css” , 并创建 assets/app.css ,拷贝样式 (复制下面样式即可)
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,th,td {
margin: 0;
padding: 0;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
fieldset,img {
border: 0;
}
address,caption,cite,code,dfn,em,strong,th,var {
font-style: normal;
font-weight: normal;
}
ol,ul {
list-style: none;
}
caption,th {
text-align: left;
}
h1,h2,h3,h4,h5,h6 {
font-size: 100%;
font-weight: normal;
}
重置样式参考:www.cnblogs.com/weizhxa/p/9…
步骤二: 修改 src/main.js 导入 app.css 样式
/** 导入公共样式
*/
import '@/assets/app.css'
/* 导入element-ui样式
*/
import 'element-ui/lib/theme-chalk/index.css'
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
/* element-ui所有组件
*/
import ElementUI from 'element-ui'
Vue.use(ElementUI)
Vue.config.productionTip = false
new Vue({
router,
store,
render: h => h(App)
}).$mount('#app')
1.1.3 满屏填充
在App.vue中,添加样式
html, body, .el-container {
height: 100%;
}
1.2 导航条
1.2.1 需求
1.2.2 导航条
使用导航菜单(NavMenu) 完成导航条效果
步骤1: 修改 src/App.vue
<template> <div id="app"> <el-container> <el-header> <!-- 导航条 --> <el-menu :default-active="$route.path" class="el-menu-demo" mode="horizontal" background-color="#545c64" text-color="#fff" active-text-color="#ffd04b" \> <el-menu-item index="/">首页</el-menu-item> <el-submenu index="2"> <template slot="title">学生管理</template> <el-menu-item index="/studentList">学生列表</el-menu-item> </el-submenu> <el-submenu index="3"> <template slot="title">个人中心</template> <el-menu-item index="/login">登录</el-menu-item> <el-menu-item index="/register">注册</el-menu-item> </el-submenu> <el-menu-item index="/cart"> 购物车 </el-menu-item> </el-menu> </el-header> <el-main> <router-view></router-view> </el-main> <el-footer> 版权所有 2006 - 2022 </el-footer> </el-container> </div> </template> <script> export default { } </script> <style> .el-header, .el-footer { background-color: #B3C0D1; color: #333; text-align: center; line-height: 60px; padding: 0; } </style>
1.2.3 路由
点击”首页” 和 “购物车” 可以调整页面
步骤一: 修改 src/App.vue 设置路由视图
<template>
<div id="app">
<el-container>
<el-header>
<!-- 导航条 -->
<el-menu
class="el-menu-demo"
mode="horizontal"
background-color="#545c64"
text-color="#fff"
active-text-color="#ffd04b"
:router="true"
\>
<el-menu-item index="/">首页</el-menu-item>
<el-submenu index="2">
<template slot="title">学生管理</template>
<el-menu-item index="/studentList">学生列表</el-menu-item>
</el-submenu>
<el-submenu index="3">
<template slot="title">个人中心</template>
<el-menu-item index="/login">登录</el-menu-item>
<el-menu-item index="/register">注册</el-menu-item>
</el-submenu>
<el-menu-item index="/cart">
购物车
</el-menu-item>
</el-menu>
</el-header>
<el-main>
<router-view></router-view>
</el-main>
<el-footer>
版权所有 2006 - 2020
</el-footer>
</el-container>
</div>
</template>
<script>
export default {
}
</script>
<style>
.el-header, .el-footer {
background-color: #B3C0D1;
color: #333;
text-align: center;
line-height: 60px;
padding: 0;
}
</style>
步骤二: 编写测试组件(Home.vue和Cart.vue)
1.2.4 页面刷新导航选中问题
默认情况:点击后的默认效果
刷新页面, 导航条的选中状态消失
修复: 修改 App.vue页面
<template>
<div id="app">
<el-container>
<el-header>
<!-- 导航条 -->
<el-menu
:default-active="$route.path"
class="el-menu-demo"
mode="horizontal"
background-color="#545c64"
text-color="#fff"
active-text-color="#ffd04b"
:router="true"
\>
1.2.5 页眉
<el-footer>
版权所有 2006 - 2022
</el-footer>