• Layout 布局
    • 设计规则
      • 尺寸
      • 交互
      • 视觉
    • 组件概述
    • 代码示例
    • API
      • Sider props
      • Sider events
      • Sider slot
      • Sider methods
      • breakpoint width

    Layout 布局

    协助进行页面级整体布局。

    设计规则

    尺寸

    一级导航项偏左靠近 logo 放置,辅助菜单偏右放置。

    • 顶部导航(大部分系统):一级导航高度 64px,二级导航 48px
    • 顶部导航(展示类页面):一级导航高度 80px,二级导航 56px
    • 顶部导航高度的范围计算公式为:48+8n
    • 侧边导航宽度的范围计算公式:200+8n

    交互

    • 一级导航和末级的导航需要在可视化的层面被强调出来;
    • 当前项应该在呈现上优先级最高;
    • 当导航收起的时候,当前项的样式自动赋予给它的上一个层级;
    • 左侧导航栏的收放交互同时支持手风琴和全展开的样式,根据业务的要求进行适当的选择。

    视觉

    导航样式上需要根据信息层级合理的选择样式:

    • 大色块强调

    建议用于底色为深色系时,当前页面父级的导航项。

    • 高亮火柴棍

    当导航栏底色为浅色系时使用,可用于当前页面对应导航项,建议尽量在导航路径的最终项使用。

    • 字体高亮变色

    从可视化层面,字体高亮的视觉强化力度低于大色块,通常在当前项的上一级使用。

    • 字体放大

    12px14px 是导航的标准字号,14 号字体用在一、二级导航中。字号可以考虑导航项的等级做相应选择。

    组件概述

    • Layout:布局容器,其下可嵌套 HeaderSiderContentFooterLayout 本身,可以放在任何父容器中。
    • Header:顶部布局,自带默认样式,其下可嵌套任何元素,只能放在 Layout 中。
    • Sider:侧边栏,自带默认样式及基本功能,其下可嵌套任何元素,只能放在 Layout 中。
    • Content:内容部分,自带默认样式,其下可嵌套任何元素,只能放在 Layout 中。
    • Footer:底部布局,自带默认样式,其下可嵌套任何元素,只能放在 Layout 中。注意:采用 flex 布局实现,请注意浏览器兼容性问题。

    代码示例

    Layout 布局 - 图1

    基本结构

    典型的页面布局

    1. <template>
    2. <div class="layout">
    3. <Layout>
    4. <Header>Header</Header>
    5. <Content>Content</Content>
    6. <Footer>Footer</Footer>
    7. </Layout>
    8. <Layout>
    9. <Header>Header</Header>
    10. <Layout>
    11. <Sider hide-trigger>Sider</Sider>
    12. <Content>Content</Content>
    13. </Layout>
    14. <Footer>Footer</Footer>
    15. </Layout>
    16. <Layout>
    17. <Header>Header</Header>
    18. <Layout>
    19. <Content>Content</Content>
    20. <Sider hide-trigger>Sider</Sider>
    21. </Layout>
    22. <Footer>Footer</Footer>
    23. </Layout>
    24. <Layout>
    25. <Sider hide-trigger>Sider</Sider>
    26. <Layout>
    27. <Header>Header</Header>
    28. <Content>Content</Content>
    29. <Footer>Footer</Footer>
    30. </Layout>
    31. </Layout>
    32. </div>
    33. </template>
    34. <script>
    35. export default {
    36. }
    37. </script>

    Layout 布局 - 图2

    上中下布局

    最基本的『上-中-下』布局。

    一般主导航放置于页面的顶端,从左自右依次为:logo、一级导航项、辅助菜单(用户、设置、通知等)。通常将内容放在固定尺寸(例如:1200px)内,整个页面排版稳定,不受用户终端显示器影响;上下级的结构符合用户上下浏览的习惯,也是较为经典的网站导航模式。页面上下切分的方式提高了主工作区域的信息展示效率,但在纵向空间上会有一些牺牲。此外,由于导航栏水平空间的限制,不适合那些一级导航项很多的信息结构。

    1. <style scoped>
    2. .layout{
    3. border: 1px solid #d7dde4;
    4. background: #f5f7f9;
    5. position: relative;
    6. border-radius: 4px;
    7. overflow: hidden;
    8. }
    9. .layout-logo{
    10. width: 100px;
    11. height: 30px;
    12. background: #5b6270;
    13. border-radius: 3px;
    14. float: left;
    15. position: relative;
    16. top: 15px;
    17. left: 20px;
    18. }
    19. .layout-nav{
    20. width: 420px;
    21. margin: 0 auto;
    22. margin-right: 20px;
    23. }
    24. .layout-footer-center{
    25. text-align: center;
    26. }
    27. </style>
    28. <template>
    29. <div class="layout">
    30. <Layout>
    31. <Header>
    32. <Menu mode="horizontal" theme="dark" active-name="1">
    33. <div class="layout-logo"></div>
    34. <div class="layout-nav">
    35. <MenuItem name="1">
    36. <Icon type="ios-navigate"></Icon>
    37. Item 1
    38. </MenuItem>
    39. <MenuItem name="2">
    40. <Icon type="ios-keypad"></Icon>
    41. Item 2
    42. </MenuItem>
    43. <MenuItem name="3">
    44. <Icon type="ios-analytics"></Icon>
    45. Item 3
    46. </MenuItem>
    47. <MenuItem name="4">
    48. <Icon type="ios-paper"></Icon>
    49. Item 4
    50. </MenuItem>
    51. </div>
    52. </Menu>
    53. </Header>
    54. <Content :style="{padding: '0 50px'}">
    55. <Breadcrumb :style="{margin: '20px 0'}">
    56. <BreadcrumbItem>Home</BreadcrumbItem>
    57. <BreadcrumbItem>Components</BreadcrumbItem>
    58. <BreadcrumbItem>Layout</BreadcrumbItem>
    59. </Breadcrumb>
    60. <Card>
    61. <div style="min-height: 200px;">
    62. Content
    63. </div>
    64. </Card>
    65. </Content>
    66. <Footer class="layout-footer-center">2011-2016 &copy; TalkingData</Footer>
    67. </Layout>
    68. </div>
    69. </template>
    70. <script>
    71. export default {
    72. }
    73. </script>

    Layout 布局 - 图3

    顶部-侧边布局-通栏

    同样拥有顶部导航及侧边栏,区别是两边未留边距,多用于应用型的网站。

    1. <style scoped>
    2. .layout{
    3. border: 1px solid #d7dde4;
    4. background: #f5f7f9;
    5. position: relative;
    6. border-radius: 4px;
    7. overflow: hidden;
    8. }
    9. .layout-logo{
    10. width: 100px;
    11. height: 30px;
    12. background: #5b6270;
    13. border-radius: 3px;
    14. float: left;
    15. position: relative;
    16. top: 15px;
    17. left: 20px;
    18. }
    19. .layout-nav{
    20. width: 420px;
    21. margin: 0 auto;
    22. margin-right: 20px;
    23. }
    24. </style>
    25. <template>
    26. <div class="layout">
    27. <Layout>
    28. <Header>
    29. <Menu mode="horizontal" theme="dark" active-name="1">
    30. <div class="layout-logo"></div>
    31. <div class="layout-nav">
    32. <MenuItem name="1">
    33. <Icon type="ios-navigate"></Icon>
    34. Item 1
    35. </MenuItem>
    36. <MenuItem name="2">
    37. <Icon type="ios-keypad"></Icon>
    38. Item 2
    39. </MenuItem>
    40. <MenuItem name="3">
    41. <Icon type="ios-analytics"></Icon>
    42. Item 3
    43. </MenuItem>
    44. <MenuItem name="4">
    45. <Icon type="ios-paper"></Icon>
    46. Item 4
    47. </MenuItem>
    48. </div>
    49. </Menu>
    50. </Header>
    51. <Layout>
    52. <Sider hide-trigger :style="{background: '#fff'}">
    53. <Menu active-name="1-2" theme="light" width="auto" :open-names="['1']">
    54. <Submenu name="1">
    55. <template slot="title">
    56. <Icon type="ios-navigate"></Icon>
    57. Item 1
    58. </template>
    59. <MenuItem name="1-1">Option 1</MenuItem>
    60. <MenuItem name="1-2">Option 2</MenuItem>
    61. <MenuItem name="1-3">Option 3</MenuItem>
    62. </Submenu>
    63. <Submenu name="2">
    64. <template slot="title">
    65. <Icon type="ios-keypad"></Icon>
    66. Item 2
    67. </template>
    68. <MenuItem name="2-1">Option 1</MenuItem>
    69. <MenuItem name="2-2">Option 2</MenuItem>
    70. </Submenu>
    71. <Submenu name="3">
    72. <template slot="title">
    73. <Icon type="ios-analytics"></Icon>
    74. Item 3
    75. </template>
    76. <MenuItem name="3-1">Option 1</MenuItem>
    77. <MenuItem name="3-2">Option 2</MenuItem>
    78. </Submenu>
    79. </Menu>
    80. </Sider>
    81. <Layout :style="{padding: '0 24px 24px'}">
    82. <Breadcrumb :style="{margin: '24px 0'}">
    83. <BreadcrumbItem>Home</BreadcrumbItem>
    84. <BreadcrumbItem>Components</BreadcrumbItem>
    85. <BreadcrumbItem>Layout</BreadcrumbItem>
    86. </Breadcrumb>
    87. <Content :style="{padding: '24px', minHeight: '280px', background: '#fff'}">
    88. Content
    89. </Content>
    90. </Layout>
    91. </Layout>
    92. </Layout>
    93. </div>
    94. </template>
    95. <script>
    96. export default {
    97. }
    98. </script>

    Layout 布局 - 图4

    顶部-侧边布局

    拥有顶部导航及侧边栏的页面,多用于展示类网站。

    1. <style scoped>
    2. .layout{
    3. border: 1px solid #d7dde4;
    4. background: #f5f7f9;
    5. position: relative;
    6. border-radius: 4px;
    7. overflow: hidden;
    8. }
    9. .layout-logo{
    10. width: 100px;
    11. height: 30px;
    12. background: #5b6270;
    13. border-radius: 3px;
    14. float: left;
    15. position: relative;
    16. top: 15px;
    17. left: 20px;
    18. }
    19. .layout-nav{
    20. width: 420px;
    21. margin: 0 auto;
    22. margin-right: 20px;
    23. }
    24. .layout-footer-center{
    25. text-align: center;
    26. }
    27. </style>
    28. <template>
    29. <div class="layout">
    30. <Layout>
    31. <Header>
    32. <Menu mode="horizontal" theme="dark" active-name="1">
    33. <div class="layout-logo"></div>
    34. <div class="layout-nav">
    35. <MenuItem name="1">
    36. <Icon type="ios-navigate"></Icon>
    37. Item 1
    38. </MenuItem>
    39. <MenuItem name="2">
    40. <Icon type="ios-keypad"></Icon>
    41. Item 2
    42. </MenuItem>
    43. <MenuItem name="3">
    44. <Icon type="ios-analytics"></Icon>
    45. Item 3
    46. </MenuItem>
    47. <MenuItem name="4">
    48. <Icon type="ios-paper"></Icon>
    49. Item 4
    50. </MenuItem>
    51. </div>
    52. </Menu>
    53. </Header>
    54. <Layout :style="{padding: '0 50px'}">
    55. <Breadcrumb :style="{margin: '16px 0'}">
    56. <BreadcrumbItem>Home</BreadcrumbItem>
    57. <BreadcrumbItem>Components</BreadcrumbItem>
    58. <BreadcrumbItem>Layout</BreadcrumbItem>
    59. </Breadcrumb>
    60. <Content :style="{padding: '24px 0', minHeight: '280px', background: '#fff'}">
    61. <Layout>
    62. <Sider hide-trigger :style="{background: '#fff'}">
    63. <Menu active-name="1-2" theme="light" width="auto" :open-names="['1']">
    64. <Submenu name="1">
    65. <template slot="title">
    66. <Icon type="ios-navigate"></Icon>
    67. Item 1
    68. </template>
    69. <MenuItem name="1-1">Option 1</MenuItem>
    70. <MenuItem name="1-2">Option 2</MenuItem>
    71. <MenuItem name="1-3">Option 3</MenuItem>
    72. </Submenu>
    73. <Submenu name="2">
    74. <template slot="title">
    75. <Icon type="ios-keypad"></Icon>
    76. Item 2
    77. </template>
    78. <MenuItem name="2-1">Option 1</MenuItem>
    79. <MenuItem name="2-2">Option 2</MenuItem>
    80. </Submenu>
    81. <Submenu name="3">
    82. <template slot="title">
    83. <Icon type="ios-analytics"></Icon>
    84. Item 3
    85. </template>
    86. <MenuItem name="3-1">Option 1</MenuItem>
    87. <MenuItem name="3-2">Option 2</MenuItem>
    88. </Submenu>
    89. </Menu>
    90. </Sider>
    91. <Content :style="{padding: '24px', minHeight: '280px', background: '#fff'}">
    92. Content
    93. </Content>
    94. </Layout>
    95. </Content>
    96. </Layout>
    97. <Footer class="layout-footer-center">2011-2016 &copy; TalkingData</Footer>
    98. </Layout>
    99. </div>
    100. </div>
    101. </template>
    102. <script>
    103. export default {
    104. }
    105. </script>

    Layout 布局 - 图5

    侧边布局

    侧边两列式布局。页面横向空间有限时,侧边导航可收起。

    侧边导航在页面布局上采用的是左右的结构,一般主导航放置于页面的左侧固定位置,辅助菜单放置于工作区顶部。内容根据浏览器终端进行自适应,能提高横向空间的使用率,但是整个页面排版不稳定。侧边导航的模式层级扩展性强,一、二、三级导航项目可以更为顺畅且具关联性的被展示,同时侧边导航可以固定,使得用户在操作和浏览中可以快速的定位和切换当前位置,有很高的操作效率。但这类导航横向页面内容的空间会被牺牲一部份。

    1. <style scoped>
    2. .layout-con{
    3. height: 100%;
    4. width: 100%;
    5. }
    6. .menu-item span{
    7. display: inline-block;
    8. overflow: hidden;
    9. width: 69px;
    10. text-overflow: ellipsis;
    11. white-space: nowrap;
    12. vertical-align: bottom;
    13. transition: width .2s ease .2s;
    14. }
    15. .menu-item i{
    16. transform: translateX(0px);
    17. transition: font-size .2s ease, transform .2s ease;
    18. vertical-align: middle;
    19. font-size: 16px;
    20. }
    21. .collapsed-menu span{
    22. width: 0px;
    23. transition: width .2s ease;
    24. }
    25. .collapsed-menu i{
    26. transform: translateX(5px);
    27. transition: font-size .2s ease .2s, transform .2s ease .2s;
    28. vertical-align: middle;
    29. font-size: 22px;
    30. }
    31. </style>
    32. <template>
    33. <div class="layout">
    34. <Layout :style="{minHeight: '100vh'}">
    35. <Sider collapsible :collapsed-width="78" v-model="isCollapsed">
    36. <Menu active-name="1-2" theme="dark" width="auto" :class="menuitemClasses">
    37. <MenuItem name="1-1">
    38. <Icon type="ios-navigate"></Icon>
    39. <span>Option 1</span>
    40. </MenuItem>
    41. <MenuItem name="1-2">
    42. <Icon type="search"></Icon>
    43. <span>Option 2</span>
    44. </MenuItem>
    45. <MenuItem name="1-3">
    46. <Icon type="settings"></Icon>
    47. <span>Option 3</span>
    48. </MenuItem>
    49. </Menu>
    50. </Sider>
    51. <Layout>
    52. <Header :style="{background: '#fff', boxShadow: '0 2px 3px 2px rgba(0,0,0,.1)'}"></Header>
    53. <Content :style="{padding: '0 16px 16px'}">
    54. <Breadcrumb :style="{margin: '16px 0'}">
    55. <BreadcrumbItem>Home</BreadcrumbItem>
    56. <BreadcrumbItem>Components</BreadcrumbItem>
    57. <BreadcrumbItem>Layout</BreadcrumbItem>
    58. </Breadcrumb>
    59. <Card>
    60. <div style="height: 600px">Content</div>
    61. </Card>
    62. </Content>
    63. </Layout>
    64. </Layout>
    65. </div>
    66. </template>
    67. <script>
    68. export default {
    69. data () {
    70. return {
    71. isCollapsed: false
    72. };
    73. },
    74. computed: {
    75. menuitemClasses: function () {
    76. return [
    77. 'menu-item',
    78. this.isCollapsed ? 'collapsed-menu' : ''
    79. ]
    80. }
    81. }
    82. }
    83. </script>

    Layout 布局 - 图6

    自定义触发器

    要使用自定义触发器,可以设置hide-trigger属性来隐藏默认触发器,也可以通过slot替换默认触发器。

    1. <style scoped>
    2. .layout{
    3. border: 1px solid #d7dde4;
    4. background: #f5f7f9;
    5. position: relative;
    6. border-radius: 4px;
    7. overflow: hidden;
    8. }
    9. .layout-header-bar{
    10. background: #fff;
    11. box-shadow: 0 1px 1px rgba(0,0,0,.1);
    12. }
    13. .layout-logo-left{
    14. width: 90%;
    15. height: 30px;
    16. background: #5b6270;
    17. border-radius: 3px;
    18. margin: 15px auto;
    19. }
    20. .menu-icon{
    21. transition: all .3s;
    22. }
    23. .rotate-icon{
    24. transform: rotate(-90deg);
    25. }
    26. .menu-item span{
    27. display: inline-block;
    28. overflow: hidden;
    29. width: 69px;
    30. text-overflow: ellipsis;
    31. white-space: nowrap;
    32. vertical-align: bottom;
    33. transition: width .2s ease .2s;
    34. }
    35. .menu-item i{
    36. transform: translateX(0px);
    37. transition: font-size .2s ease, transform .2s ease;
    38. vertical-align: middle;
    39. font-size: 16px;
    40. }
    41. .collapsed-menu span{
    42. width: 0px;
    43. transition: width .2s ease;
    44. }
    45. .collapsed-menu i{
    46. transform: translateX(5px);
    47. transition: font-size .2s ease .2s, transform .2s ease .2s;
    48. vertical-align: middle;
    49. font-size: 22px;
    50. }
    51. </style>
    52. <template>
    53. <div class="layout">
    54. <Layout>
    55. <Sider ref="side1" hide-trigger collapsible :collapsed-width="78" v-model="isCollapsed">
    56. <Menu active-name="1-2" theme="dark" width="auto" :class="menuitemClasses">
    57. <MenuItem name="1-1">
    58. <Icon type="ios-navigate"></Icon>
    59. <span>Option 1</span>
    60. </MenuItem>
    61. <MenuItem name="1-2">
    62. <Icon type="ios-search"></Icon>
    63. <span>Option 2</span>
    64. </MenuItem>
    65. <MenuItem name="1-3">
    66. <Icon type="ios-settings"></Icon>
    67. <span>Option 3</span>
    68. </MenuItem>
    69. </Menu>
    70. </Sider>
    71. <Layout>
    72. <Header :style="{padding: 0}" class="layout-header-bar">
    73. <Icon @click.native="collapsedSider" :class="rotateIcon" :style="{margin: '0 20px'}" type="md-menu" size="24"></Icon>
    74. </Header>
    75. <Content :style="{margin: '20px', background: '#fff', minHeight: '260px'}">
    76. Content
    77. </Content>
    78. </Layout>
    79. </Layout>
    80. </div>
    81. </template>
    82. <script>
    83. export default {
    84. data () {
    85. return {
    86. isCollapsed: false
    87. }
    88. },
    89. computed: {
    90. rotateIcon () {
    91. return [
    92. 'menu-icon',
    93. this.isCollapsed ? 'rotate-icon' : ''
    94. ];
    95. },
    96. menuitemClasses () {
    97. return [
    98. 'menu-item',
    99. this.isCollapsed ? 'collapsed-menu' : ''
    100. ]
    101. }
    102. },
    103. methods: {
    104. collapsedSider () {
    105. this.$refs.side1.toggleCollapse();
    106. }
    107. }
    108. }
    109. </script>

    Layout 布局 - 图7

    响应式布局

    Sider支持响应式布局

    说明:配置breakpoint 属性即生效,视窗宽度小于breakpoint 时 Sider 缩小为collapsedWidth 宽度,若将collapsedWidth 设置为零,会出现特殊 trigger。

    <style scoped>
        .layout{
            border: 1px solid #d7dde4;
            background: #f5f7f9;
            position: relative;
            border-radius: 4px;
            overflow: hidden;
        }
        .layout-header-bar{
            background: #fff;
            box-shadow: 0 1px 1px rgba(0,0,0,.1);
        }
        .menu-item span{
            display: inline-block;
            overflow: hidden;
            width: 69px;
            text-overflow: ellipsis;
            white-space: nowrap;
            vertical-align: bottom;
            transition: width .2s ease .2s;
        }
        .menu-item i{
            transform: translateX(0px);
            transition: font-size .2s ease, transform .2s ease;
            vertical-align: middle;
            font-size: 16px;
        }
        .collapsed-menu span{
            width: 0px;
            transition: width .2s ease;
        }
        .collapsed-menu i{
            transform: translateX(5px);
            transition: font-size .2s ease .2s, transform .2s ease .2s;
            vertical-align: middle;
            font-size: 22px;
        }
    </style>
    <template>
        <div class="layout">
            <Layout>
                <Sider breakpoint="md" collapsible :collapsed-width="78" v-model="isCollapsed">
                    <Menu active-name="1-2" theme="dark" width="auto" :class="menuitemClasses">
                        <MenuItem name="1-1">
                            <Icon type="ios-navigate"></Icon>
                            <span>Option 1</span>
                        </MenuItem>
                        <MenuItem name="1-2">
                            <Icon type="ios-search"></Icon>
                            <span>Option 2</span>
                        </MenuItem>
                        <MenuItem name="1-3">
                            <Icon type="ios-settings"></Icon>
                            <span>Option 3</span>
                        </MenuItem>
                    </Menu>
                    <div slot="trigger"></div>
                </Sider>
                <Layout>
                    <Header class="layout-header-bar"></Header>
                    <Content :style="{margin: '20px', background: '#fff', minHeight: '220px'}">
                        Content
                    </Content>
                </Layout>
            </Layout>
        </div>
    </template>
    <script>
        export default {
            data () {
                return {
                    isCollapsed: false
                };
            },
            computed: {
                menuitemClasses: function () {
                    return [
                        'menu-item',
                        this.isCollapsed ? 'collapsed-menu' : ''
                    ]
                }
            }
        }
    </script>
    

    Layout 布局 - 图8

    固定头部

    一般用于固定顶部导航,方便页面切换。

    <style scoped>
        .layout{
            border: 1px solid #d7dde4;
            background: #f5f7f9;
            position: relative;
            border-radius: 4px;
            overflow: hidden;
        }
        .layout-logo{
            width: 100px;
            height: 30px;
            background: #5b6270;
            border-radius: 3px;
            float: left;
            position: relative;
            top: 15px;
            left: 20px;
        }
        .layout-nav{
            width: 420px;
            margin: 0 auto;
            margin-right: 20px;
        }
        .layout-footer-center{
            text-align: center;
        }
    </style>
    <template>
        <div class="layout">
            <Layout>
                <Header :style="{position: 'fixed', width: '100%'}">
                    <Menu mode="horizontal" theme="dark" active-name="1">
                        <div class="layout-logo"></div>
                        <div class="layout-nav">
                            <MenuItem name="1">
                                <Icon type="ios-navigate"></Icon>
                                Item 1
                            </MenuItem>
                            <MenuItem name="2">
                                <Icon type="ios-keypad"></Icon>
                                Item 2
                            </MenuItem>
                            <MenuItem name="3">
                                <Icon type="ios-analytics"></Icon>
                                Item 3
                            </MenuItem>
                            <MenuItem name="4">
                                <Icon type="ios-paper"></Icon>
                                Item 4
                            </MenuItem>
                        </div>
                    </Menu>
                </Header>
                <Content :style="{margin: '88px 20px 0', background: '#fff', minHeight: '500px'}">
                    Content
                </Content>
                <Footer class="layout-footer-center">2011-2016 &copy; TalkingData</Footer>
            </Layout>
        </div>
    </template>
    <script>
        export default {
    
        }
    </script>
    

    Layout 布局 - 图9

    固定侧边栏

    当内容较长时,使用固定侧边栏可以提供更好的体验。

    <style scoped>
        .layout{
            border: 1px solid #d7dde4;
            background: #f5f7f9;
            position: relative;
            border-radius: 4px;
            overflow: hidden;
        }
        .layout-header-bar{
            background: #fff;
            box-shadow: 0 1px 1px rgba(0,0,0,.1);
        }
    </style>
    <template>
        <div class="layout">
            <Sider :style="{position: 'fixed', height: '100vh', left: 0, overflow: 'auto'}">
                <Menu active-name="1-2" theme="dark" width="auto" :open-names="['1']">
                    <Submenu name="1">
                        <template slot="title">
                            <Icon type="ios-navigate"></Icon>
                            Item 1
                        </template>
                        <MenuItem name="1-1">Option 1</MenuItem>
                        <MenuItem name="1-2">Option 2</MenuItem>
                        <MenuItem name="1-3">Option 3</MenuItem>
                    </Submenu>
                    <Submenu name="2">
                        <template slot="title">
                            <Icon type="ios-keypad"></Icon>
                            Item 2
                        </template>
                        <MenuItem name="2-1">Option 1</MenuItem>
                        <MenuItem name="2-2">Option 2</MenuItem>
                    </Submenu>
                    <Submenu name="3">
                        <template slot="title">
                            <Icon type="ios-analytics"></Icon>
                            Item 3
                        </template>
                        <MenuItem name="3-1">Option 1</MenuItem>
                        <MenuItem name="3-2">Option 2</MenuItem>
                    </Submenu>
                </Menu>
            </Sider>
            <Layout :style="{marginLeft: '200px'}">
                <Header :style="{background: '#fff', boxShadow: '0 2px 3px 2px rgba(0,0,0,.1)'}"></Header>
                <Content :style="{padding: '0 16px 16px'}">
                    <Breadcrumb :style="{margin: '16px 0'}">
                        <BreadcrumbItem>Home</BreadcrumbItem>
                        <BreadcrumbItem>Components</BreadcrumbItem>
                        <BreadcrumbItem>Layout</BreadcrumbItem>
                    </Breadcrumb>
                    <Card>
                        <div style="height: 600px">Content</div>
                    </Card>
                </Content>
            </Layout>
        </div>
    </template>
    <script>
        export default {
    
        }
    </script>
    

    API

    Sider props

    属性说明类型默认值
    breakpoint触发响应式布局的断点,可选值为xs,sm,md,lg,xlxxl,若不设此属性则不会触发响应式布局。String-
    value侧边栏是否收起,可使用 v-model 双向绑定数据。Booleanfalse
    width宽度Number200
    collapsible是否可收起,设为false后,默认触发器会隐藏,且响应式布局不会触发Booleanfalse
    collapsed-width收缩宽度,设置为 0 会出现特殊 triggerNumber64
    hide-trigger隐藏默认触发器Booleanfalse
    default-collapsed是否默认收起,设置了collapsible后设置此属性侧边栏仍会收起。Booleanfalse
    reverse-arrow改变侧边栏触发器箭头方向,和改变侧边栏收起方向,当Sider在右边时可以使用。Booleanfalse

    Sider events

    事件名说明返回值
    on-collapse展开-收起时的回调true / false

    Sider slot

    名称说明
    trigger自定义触发器

    Sider methods

    方法名说明
    toggleCollapse改变Sider展开-收起状态。

    breakpoint width

        {
            xs: '480px',
            sm: '576px',
            md: '768px',
            lg: '992px',
            xl: '1200px',
            xxl: '1600px'
        }