2017-08-22 12:46:22 +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
2017-12-12 12:45:09 +08:00
:::demo
2017-08-22 12:46:22 +08:00
```html
< el-container >
< el-header > Header< / el-header >
< el-main > Main< / el-main >
< / el-container >
< el-container >
< el-header > Header< / el-header >
< el-main > Main< / el-main >
< el-footer > Footer< / el-footer >
< / el-container >
< el-container >
< el-aside width = "200px" > Aside< / el-aside >
< el-main > Main< / el-main >
< / el-container >
< 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 >
< 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 >
< 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 >
< 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 >
< style >
.el-header, .el-footer {
2017-09-29 15:37:50 +08:00
background-color: #B3C0D1 ;
color: #333 ;
2017-08-22 12:46:22 +08:00
text-align: center;
line-height: 60px;
}
.el-aside {
2017-09-29 15:37:50 +08:00
background-color: #D3DCE6 ;
color: #333 ;
2017-08-22 12:46:22 +08:00
text-align: center;
line-height: 200px;
}
.el-main {
2017-09-29 15:37:50 +08:00
background-color: #E9EEF3 ;
color: #333 ;
2017-08-22 12:46:22 +08:00
text-align: center;
line-height: 160px;
}
body > .el-container {
margin-bottom: 40px;
}
.el-container:nth-child(5) .el-aside,
.el-container:nth-child(6) .el-aside {
line-height: 260px;
}
.el-container:nth-child(7) .el-aside {
line-height: 320px;
}
< / style >
```
:::
### Example
2017-12-12 12:45:09 +08:00
:::demo
2017-08-22 12:46:22 +08:00
```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" >
< template slot = "title" > < i class = "el-icon-message" > < / i > Navigator One< / template >
< el-menu-item-group >
< template slot = "title" > Group 1< / template >
< 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" >
< template slot = "title" > Option4< / template >
< el-menu-item index = "1-4-1" > Option 4-1< / el-menu-item >
< / el-submenu >
< / el-submenu >
< el-submenu index = "2" >
< template slot = "title" > < i class = "el-icon-menu" > < / i > Navigator Two< / template >
< el-menu-item-group >
< template slot = "title" > Group 1< / template >
< 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" >
< template slot = "title" > Option 4< / template >
< el-menu-item index = "2-4-1" > Option 4-1< / el-menu-item >
< / el-submenu >
< / el-submenu >
< el-submenu index = "3" >
< template slot = "title" > < i class = "el-icon-setting" > < / i > Navigator Three< / template >
< el-menu-item-group >
< template slot = "title" > Group 1< / template >
< 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" >
< template slot = "title" > Option 4< / template >
< el-menu-item index = "3-4-1" > Option 4-1< / el-menu-item >
< / el-submenu >
< / el-submenu >
< / el-menu >
< / el-aside >
2017-09-29 15:37:50 +08:00
2017-08-22 12:46:22 +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 >
< el-dropdown-menu slot = "dropdown" >
< el-dropdown-item > View< / el-dropdown-item >
< el-dropdown-item > Add< / el-dropdown-item >
< el-dropdown-item > Delete< / el-dropdown-item >
< / el-dropdown-menu >
< / el-dropdown >
< span > Tom< / span >
< / el-header >
2017-09-29 15:37:50 +08:00
2017-08-22 12:46:22 +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 {
2017-09-29 15:37:50 +08:00
background-color: #B3C0D1 ;
color: #333 ;
2017-08-22 12:46:22 +08:00
line-height: 60px;
}
.el-aside {
2017-09-29 15:37:50 +08:00
color: #333 ;
2017-08-22 12:46:22 +08:00
}
< / 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 |
|---------- |-------------- |---------- |-------------------------------- |-------- |
| height | height of the footer | string | — | 60px |