2020-08-13 15:18:26 +08:00
## Container
Container components for scaffolding basic structure of the page:
`<el-container>` : wrapper container. When nested with a `<el-header>` or `<el-footer>` , all its child elements will be vertically arranged. Otherwise horizontally.
`<el-header>` : container for headers.
`<el-aside>` : container for side sections (usually a side nav).
`<el-main>` : container for main sections.
`<el-footer>` : container for footers.
:::tip
These components use flex for layout, so please make sure your browser supports it. Besides, `<el-container>` 's direct child elements have to be one or more of the latter four components. And father element of the latter four components must be a `<el-container>` .
:::
### Common layouts
:::demo
```html
2021-01-06 14:12:22 +08:00
< div class = "common-layout" >
< el-container >
< el-header > Header< / el-header >
< el-main > Main< / el-main >
< / el-container >
2020-08-13 15:18:26 +08:00
2021-01-06 14:12:22 +08:00
< el-container >
< el-header > Header< / el-header >
< el-main > Main< / el-main >
< el-footer > Footer< / el-footer >
< / el-container >
2020-08-13 15:18:26 +08:00
< el-container >
< el-aside width = "200px" > Aside< / el-aside >
< el-main > Main< / el-main >
< / el-container >
< el-container >
2021-01-06 14:12:22 +08:00
< el-header > Header< / el-header >
2020-08-13 15:18:26 +08:00
< el-container >
2021-01-06 14:12:22 +08:00
< el-aside width = "200px" > Aside< / el-aside >
2020-08-13 15:18:26 +08:00
< el-main > Main< / el-main >
< / el-container >
< / el-container >
< el-container >
< el-header > Header< / el-header >
2021-01-06 14:12:22 +08:00
< 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 >
2020-08-13 15:18:26 +08:00
< / el-container >
< el-container >
2021-01-06 14:12:22 +08:00
< el-aside width = "200px" > Aside< / el-aside >
< el-container >
< el-header > Header< / el-header >
< el-main > Main< / el-main >
< / el-container >
2020-08-13 15:18:26 +08:00
< / el-container >
2021-01-06 14:12:22 +08:00
< 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 >
< / div >
2020-08-13 15:18:26 +08:00
< style >
.el-header, .el-footer {
background-color: #B3C0D1 ;
color: #333 ;
text-align: center;
line-height: 60px;
}
2021-01-06 14:12:22 +08:00
2020-08-13 15:18:26 +08:00
.el-aside {
background-color: #D3DCE6 ;
color: #333 ;
text-align: center;
line-height: 200px;
}
2021-01-06 14:12:22 +08:00
2020-08-13 15:18:26 +08:00
.el-main {
background-color: #E9EEF3 ;
color: #333 ;
text-align: center;
line-height: 160px;
}
2021-01-06 14:12:22 +08:00
2020-08-13 15:18:26 +08:00
body > .el-container {
margin-bottom: 40px;
}
2021-01-06 14:12:22 +08:00
2020-08-13 15:18:26 +08:00
.el-container:nth-child(5) .el-aside,
.el-container:nth-child(6) .el-aside {
line-height: 260px;
}
2021-01-06 14:12:22 +08:00
2020-08-13 15:18:26 +08:00
.el-container:nth-child(7) .el-aside {
line-height: 320px;
}
< / style >
```
:::
### Example
:::demo
```html
< 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" >
2020-11-26 23:12:06 +08:00
< template #title >< i class = "el-icon-message" ></ i > Navigator One</ template >
2020-08-13 15:18:26 +08:00
< el-menu-item-group >
2020-11-26 23:12:06 +08:00
< template #title > Group 1</ template >
2020-08-13 15:18:26 +08:00
< el-menu-item index = "1-1" > Option 1< / el-menu-item >
< el-menu-item index = "1-2" > Option 2< / el-menu-item >
< / el-menu-item-group >
< el-menu-item-group title = "Group 2" >
< el-menu-item index = "1-3" > Option 3< / el-menu-item >
< / el-menu-item-group >
< el-submenu index = "1-4" >
2020-11-26 23:12:06 +08:00
< template #title > Option4</ template >
2020-08-13 15:18:26 +08:00
< el-menu-item index = "1-4-1" > Option 4-1< / el-menu-item >
< / el-submenu >
< / el-submenu >
< el-submenu index = "2" >
2020-11-26 23:12:06 +08:00
< template #title >< i class = "el-icon-menu" ></ i > Navigator Two</ template >
2020-08-13 15:18:26 +08:00
< el-menu-item-group >
2020-11-26 23:12:06 +08:00
< template #title > Group 1</ template >
2020-08-13 15:18:26 +08:00
< el-menu-item index = "2-1" > Option 1< / el-menu-item >
< el-menu-item index = "2-2" > Option 2< / el-menu-item >
< / el-menu-item-group >
< el-menu-item-group title = "Group 2" >
< el-menu-item index = "2-3" > Option 3< / el-menu-item >
< / el-menu-item-group >
< el-submenu index = "2-4" >
2020-11-26 23:12:06 +08:00
< template #title > Option 4</ template >
2020-08-13 15:18:26 +08:00
< el-menu-item index = "2-4-1" > Option 4-1< / el-menu-item >
< / el-submenu >
< / el-submenu >
< el-submenu index = "3" >
2020-11-26 23:12:06 +08:00
< template #title >< i class = "el-icon-setting" ></ i > Navigator Three</ template >
2020-08-13 15:18:26 +08:00
< el-menu-item-group >
2020-11-26 23:12:06 +08:00
< template #title > Group 1</ template >
2020-08-13 15:18:26 +08:00
< el-menu-item index = "3-1" > Option 1< / el-menu-item >
< el-menu-item index = "3-2" > Option 2< / el-menu-item >
< / el-menu-item-group >
< el-menu-item-group title = "Group 2" >
< el-menu-item index = "3-3" > Option 3< / el-menu-item >
< / el-menu-item-group >
< el-submenu index = "3-4" >
2020-11-26 23:12:06 +08:00
< template #title > Option 4</ template >
2020-08-13 15:18:26 +08:00
< el-menu-item index = "3-4-1" > Option 4-1< / el-menu-item >
< / el-submenu >
< / el-submenu >
< / el-menu >
< / el-aside >
2021-01-06 14:12:22 +08:00
2020-08-13 15:18:26 +08:00
< el-container >
< el-header style = "text-align: right; font-size: 12px" >
< el-dropdown >
< i class = "el-icon-setting" style = "margin-right: 15px" > < / i >
2020-11-26 23:12:06 +08:00
< template #dropdown >
< el-dropdown-menu >
< el-dropdown-item > View< / el-dropdown-item >
< el-dropdown-item > Add< / el-dropdown-item >
< el-dropdown-item > Delete< / el-dropdown-item >
< / el-dropdown-menu >
< / template >
2020-08-13 15:18:26 +08:00
< / el-dropdown >
< span > Tom< / span >
< / el-header >
2021-01-06 14:12:22 +08:00
2020-08-13 15:18:26 +08:00
< el-main >
< el-table :data = "tableData" >
< el-table-column prop = "date" label = "Date" width = "140" >
< / el-table-column >
< el-table-column prop = "name" label = "Name" width = "120" >
< / el-table-column >
< el-table-column prop = "address" label = "Address" >
< / el-table-column >
< / el-table >
< / el-main >
< / el-container >
< / el-container >
< style >
.el-header {
background-color: #B3C0D1 ;
color: #333 ;
line-height: 60px;
}
2021-01-06 14:12:22 +08:00
2020-08-13 15:18:26 +08:00
.el-aside {
color: #333 ;
}
< / style >
< script >
export default {
data() {
const item = {
date: '2016-05-02',
name: 'Tom',
address: 'No. 189, Grove St, Los Angeles'
};
return {
tableData: Array(20).fill(item)
}
}
};
< / script >
```
:::
### Container Attributes
| Attribute | Description | Type | Accepted Values | Default |
|---------- |-------------- |---------- |-------------------------------- |-------- |
| direction | layout direction for child elements | string | horizontal / vertical | vertical when nested with `el-header` or `el-footer` ; horizontal otherwise |
### Header Attributes
| Attribute | Description | Type | Accepted Values | Default |
|---------- |-------------- |---------- |-------------------------------- |-------- |
| height | height of the header | string | — | 60px |
### Aside Attributes
| Attribute | Description | Type | Accepted Values | Default |
|---------- |-------------- |---------- |-------------------------------- |-------- |
| width | width of the side section | string | — | 300px |
### Footer Attributes
| Attribute | Description | Type | Accepted Values | Default |
|---------- |-------------- |---------- |-------------------------------- |-------- |
2021-01-06 14:12:22 +08:00
| height | height of the footer | string | — | 60px |