Element:Container布局容器

来自CloudWiki
跳转至: 导航搜索

简介

用于布局的容器组件,方便快速搭建页面的基本结构:

<el-container>:外层容器。当子元素中包含 <el-header> 或 <el-footer> 时,全部子元素会垂直上下排列,否则会水平左右排列。

<el-header>:顶栏容器。

<el-aside>:侧边栏容器。

<el-main>:主要区域容器。

<el-footer>:底栏容器。

以上组件采用了 flex 布局,使用前请确定目标浏览器是否兼容。此外,<el-container> 的子元素只能是后四者,后四者的父元素也只能是 <el-container>

常见页面布局

首尾式

效果:

Vue2022080401.png

代码:

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<title>VUE第一个案例-helloWorld</title>
		<script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>

		<!-- 引入样式 -->
		<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
		<!-- 引入组件库 -->
		<script src="https://unpkg.com/element-ui/lib/index.js"></script>
		<style type="text/css">
		    .el-header,.el-footer {
				background-color: #B3C0D1;
				color: #333;
				text-align: center;
				line-height: 60px;


			}
                      .el-aside {
            	              background-color: #D3DCE6;
            	              color: #333;
            	              text-align: center;
            	              line-height: 200px;
                        }

			.el-main {
				background-color: #E9EEF3;
				color: #333;
				text-align: center;
				line-height: 160px;
				height:400px;
			}

			body>.el-container {
				margin-bottom: 40px;
			}


		</style>

	</head>

	<body>
		<div id="app">
			<el-container>
				<el-header>Header</el-header>
	
				<el-main>Main</el-main>
			</el-container>




		</div>

		<script>
			new Vue({
				el: '#app',
				methods: {

				}
			})
		</script>
	</body>
</html>

首中尾式

效果:

Vue2022080402.png

代码


		<div id="app">
			<el-container>
				<el-header>Header</el-header>
				<el-main>Main</el-main>
				<el-footer>Footer</el-footer>
			</el-container>



		</div>




侧中式

效果图:

Vue2022080403.png

代码:


		<div id="app">
			<el-container>
			  <el-aside width="200px">Aside</el-aside>
			  <el-main>Main</el-main>
			</el-container>



		</div>


</html>


首侧中式

截图:

Vue2022080404.png

代码:


		<div id="app">
			<el-container>
			  <el-header>Header</el-header>
			  <el-container>
			    <el-aside width="200px">Aside</el-aside>
			    <el-main>Main</el-main>
			  </el-container>
			</el-container>



		</div>


</html>


首侧中尾式

Vue2022080408.png

			<el-container>
				<el-header>Header</el-header>
				<el-container>
					<el-aside width="200px">Aside</el-aside>
					<el-main>Main</el-main>
				</el-container>
				<el-footer>Footer</el-footer>
			</el-container>

首侧(中尾)式

Vue2022080405.png

		<div id="app">
			<el-container>
			  <el-header>Header</el-header>
			  <el-container>
			    <el-aside width="200px">Aside</el-aside>
			    <el-container>
			      <el-main>Main</el-main>
			      <el-footer>Footer</el-footer>
			    </el-container>
			  </el-container>
			</el-container>
		</div>

侧(首中)式

Vue2022080406.png

		<div id="app">
			<el-container>
				<el-aside width="200px">Aside</el-aside>
				<el-container>
					<el-header>Header</el-header>
					<el-main>Main</el-main>
				</el-container>
			</el-container>

		</div>

侧(首中尾)式

Vue2022080407.png

<el-container>
			  <el-aside width="200px">Aside</el-aside>
			  <el-container>
			    <el-header>Header</el-header>
			    <el-main>Main</el-main>
			    <el-footer>Footer</el-footer>
			  </el-container>
			</el-container>

实例:用布局容器做控制面板

基本版

效果图

Vue2022071302.png

代码

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<title>VUE第一个案例-helloWorld</title>
		<script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>

		<!-- 引入样式 -->
		<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
		<!-- 引入组件库 -->
		<script src="https://unpkg.com/element-ui/lib/index.js"></script>



	</head>

	<body>
		<div id="app">
			<el-container style="height: 500px; border: 1px solid #eee">
				<el-aside width="200px" style="background-color: rgb(238, 241, 246)">
					<el-menu :default-openeds="['1', '3']">
						<el-submenu index="1">
							<template slot="title"><i class="el-icon-message"></i>导航一</template>
							<el-menu-item-group>
								<template slot="title">分组一</template>
								<el-menu-item index="1-1">选项1</el-menu-item>
								<el-menu-item index="1-2">选项2</el-menu-item>
							</el-menu-item-group>
							<el-menu-item-group title="分组2">
								<el-menu-item index="1-3">选项3</el-menu-item>
							</el-menu-item-group>
							<el-submenu index="1-4">
								<template slot="title">选项4</template>
								<el-menu-item index="1-4-1">选项4-1</el-menu-item>
							</el-submenu>
						</el-submenu>
						<el-submenu index="2">
							<template slot="title"><i class="el-icon-menu"></i>导航二</template>
							<el-menu-item-group>
								<template slot="title">分组一</template>
								<el-menu-item index="2-1">选项1</el-menu-item>
								<el-menu-item index="2-2">选项2</el-menu-item>
							</el-menu-item-group>
							<el-menu-item-group title="分组2">
								<el-menu-item index="2-3">选项3</el-menu-item>
							</el-menu-item-group>
							<el-submenu index="2-4">
								<template slot="title">选项4</template>
								<el-menu-item index="2-4-1">选项4-1</el-menu-item>
							</el-submenu>
						</el-submenu>
						<el-submenu index="3">
							<template slot="title"><i class="el-icon-setting"></i>导航三</template>
							<el-menu-item-group>
								<template slot="title">分组一</template>
								<el-menu-item index="3-1">选项1</el-menu-item>
								<el-menu-item index="3-2">选项2</el-menu-item>
							</el-menu-item-group>
							<el-menu-item-group title="分组2">
								<el-menu-item index="3-3">选项3</el-menu-item>
							</el-menu-item-group>
							<el-submenu index="3-4">
								<template slot="title">选项4</template>
								<el-menu-item index="3-4-1">选项4-1</el-menu-item>
							</el-submenu>
						</el-submenu>
					</el-menu>
				</el-aside>

				<el-container>
					<el-header style="text-align: right; font-size: 12px">
						<el-dropdown>
							<i class="el-icon-setting" style="margin-right: 15px"></i>
							<el-dropdown-menu slot="dropdown">
								<el-dropdown-item>查看</el-dropdown-item>
								<el-dropdown-item>新增</el-dropdown-item>
								<el-dropdown-item>删除</el-dropdown-item>
							</el-dropdown-menu>
						</el-dropdown>
						<span>王小虎</span>
					</el-header>

					<el-main>
						<el-table :data="tableData">
							<el-table-column prop="date" label="日期" width="140">
							</el-table-column>
							<el-table-column prop="name" label="姓名" width="120">
							</el-table-column>
							<el-table-column prop="address" label="地址">
							</el-table-column>
						</el-table>
					</el-main>
				</el-container>
			</el-container>
		</div>
		</div>
		<style type="text/css">
			.el-header {
				background-color: #B3C0D1;
				color: #333;
				line-height: 60px;
			}

			.el-aside {
				color: #333;
			}
		</style>
		<script>
			const item = {
				date: '2016-05-02',
				name: '马小虎',
				address: '上海市普陀区金沙江路 1518 弄'
			};
			var app = new Vue({
				el: '#app',
				data: {

					tableData: Array(20).fill(item)

				}
			})
		</script>
	</body>
</html>



改进版

实现侧边栏颜色的个性化,

具体做法为,在el-menu中加入下列属性:

default-active="2"
class="el-menu-vertical-demo"					      
background-color="#545c64"
text-color="#fff"


效果图

Vue2022080601.png


代码

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<title>VUE第一个案例-helloWorld</title>
		<script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>

		<!-- 引入样式 -->
		<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
		<!-- 引入组件库 -->
		<script src="https://unpkg.com/element-ui/lib/index.js"></script>



	</head>

	<body>
		<div id="app">
			<el-container style="height: 700px; border: 1px solid #eee">

				<el-aside width="250px" style="background-color: #545c64;color:#FFF">
					<h3>丝路通供应商数据中台</h3>
					<el-menu :default-openeds="['1', '3']" default-active="2" class="el-menu-vertical-demo"
						background-color="#545c64" text-color="#fff" active-text-color="#ffd04b">
						<el-submenu index="1">
							<template slot="title"><i class="el-icon-message"></i>整体行情</template>
							<el-menu-item-group>
								<template slot="title">分组一</template>
								<el-menu-item index="1-1">选项1</el-menu-item>
								<el-menu-item index="1-2">选项2</el-menu-item>
							</el-menu-item-group>
							<el-menu-item-group title="分组2">
								<el-menu-item index="1-3">选项3</el-menu-item>
							</el-menu-item-group>
							<el-submenu index="1-4">
								<template slot="title">选项4</template>
								<el-menu-item index="1-4-1">选项4-1</el-menu-item>
							</el-submenu>
						</el-submenu>
						<el-submenu index="2">
							<template slot="title"><i class="el-icon-menu"></i>产品搜索</template>
							<el-menu-item-group>
								<template slot="title">分组一</template>
								<el-menu-item index="2-1">选项1</el-menu-item>
								<el-menu-item index="2-2">选项2</el-menu-item>
							</el-menu-item-group>
							<el-menu-item-group title="分组2">
								<el-menu-item index="2-3">选项3</el-menu-item>
							</el-menu-item-group>
							<el-submenu index="2-4">
								<template slot="title">选项4</template>
								<el-menu-item index="2-4-1">选项4-1</el-menu-item>
							</el-submenu>
						</el-submenu>
						<el-submenu index="3">
							<template slot="title"><i class="el-icon-setting"></i>高级搜索</template>
							<el-menu-item-group>
								<template slot="title">分组一</template>
								<el-menu-item index="3-1">选项1</el-menu-item>
								<el-menu-item index="3-2">选项2</el-menu-item>
							</el-menu-item-group>
							<el-menu-item-group title="分组2">
								<el-menu-item index="3-3">选项3</el-menu-item>
							</el-menu-item-group>
							<el-submenu index="3-4">
								<template slot="title">选项4</template>
								<el-menu-item index="3-4-1">选项4-1</el-menu-item>
							</el-submenu>
						</el-submenu>
						<el-submenu index="4">
							<template slot="title"><i class="el-icon-setting"></i>选品调研</template>
							<el-menu-item-group>
								<template slot="title">分组一</template>
								<el-menu-item index="3-1">选项1</el-menu-item>
								<el-menu-item index="3-2">选项2</el-menu-item>
							</el-menu-item-group>
							<el-menu-item-group title="分组2">
								<el-menu-item index="3-3">选项3</el-menu-item>
							</el-menu-item-group>
							<el-submenu index="3-4">
								<template slot="title">选项4</template>
								<el-menu-item index="3-4-1">选项4-1</el-menu-item>
							</el-submenu>
						</el-submenu>
						<el-submenu index="5">
							<template slot="title"><i class="el-icon-setting"></i>利润对比</template>
							<el-menu-item-group>
								<template slot="title">分组一</template>
								<el-menu-item index="3-1">选项1</el-menu-item>
								<el-menu-item index="3-2">选项2</el-menu-item>
							</el-menu-item-group>
							<el-menu-item-group title="分组2">
								<el-menu-item index="3-3">选项3</el-menu-item>
							</el-menu-item-group>
							<el-submenu index="3-4">
								<template slot="title">选项4</template>
								<el-menu-item index="3-4-1">选项4-1</el-menu-item>
							</el-submenu>
						</el-submenu>
					</el-menu>
				</el-aside>

				<el-container>
					<el-header style="text-align: right; font-size: 12px">
						<el-dropdown>
							<i class="el-icon-setting" style="margin-right: 15px"></i>
							<el-dropdown-menu slot="dropdown">
								<el-dropdown-item>查看</el-dropdown-item>
								<el-dropdown-item>新增</el-dropdown-item>
								<el-dropdown-item>删除</el-dropdown-item>
							</el-dropdown-menu>
						</el-dropdown>
						<span>王小虎</span>
					</el-header>

					<el-main>
						<el-table :data="tableData">
							<el-table-column prop="date" label="日期" width="140">
							</el-table-column>
							<el-table-column prop="name" label="姓名" width="120">
							</el-table-column>
							<el-table-column prop="address" label="地址">
							</el-table-column>
						</el-table>
					</el-main>
				</el-container>
			</el-container>
		</div>
		</div>
		<style type="text/css">
			.el-header {
				background-color: #B3C0D1;
				color: #333;
				line-height: 60px;
			}

			.el-aside {
				color: #333;

			}
		</style>
		<script>
			// var Main = {
			// 	data() {
			// 		const item = {
			// 			date: '2016-05-02',
			// 			name: '王小虎',
			// 			address: '上海市普陀区金沙江路 1518 弄'
			// 		};
			// 		return {
			// 			tableData: Array(20).fill(item)
			// 		}
			// 	}
			// };
			// var Ctor = Vue.extend(Main)
			// new Ctor().$mount('#app')
			const item = {
				date: '2016-05-02',
				name: '马小虎',
				address: '上海市普陀区金沙江路 1518 弄'
			};
			var app = new Vue({
				el: '#app',
				data: {

					tableData: Array(20).fill(item)

				}
			})
		</script>
	</body>
</html>