diff --git a/src/components/menu/menu-item.vue b/src/components/menu/menu-item.vue
index ee02e15..92eecda 100644
--- a/src/components/menu/menu-item.vue
+++ b/src/components/menu/menu-item.vue
@@ -35,6 +35,7 @@
         },
         methods: {
             handleClick () {
+                if (this.disabled) return;
                 this.$dispatch('on-menu-item-select', this.key);
             }
         }
diff --git a/src/components/menu/menu.vue b/src/components/menu/menu.vue
index c49f232..ec747f7 100644
--- a/src/components/menu/menu.vue
+++ b/src/components/menu/menu.vue
@@ -73,6 +73,10 @@
                                 }
                             }
                         })
+                    } else if (item.$options.name === 'MenuGroup') {
+                        item.$children.forEach(groupItem => {
+                            groupItem.active = groupItem.key === this.activeKey;
+                        })
                     } else {
                         item.active = item.key === this.activeKey;
                     }
diff --git a/src/components/menu/submenu.vue b/src/components/menu/submenu.vue
index 4f10b91..5a47e3b 100644
--- a/src/components/menu/submenu.vue
+++ b/src/components/menu/submenu.vue
@@ -1,10 +1,10 @@
 <template>
     <li :class="classes" @mouseenter="handleMouseenter" @mouseleave="handleMouseleave">
-        <div :class="[prefixCls + '-title']" v-el:reference>
-            <span><slot name="title"></slot></span>
-            <Icon type="ios-arrow-down"></Icon>
+        <div :class="[prefixCls + '-submenu-title']" v-el:reference @click="handleClick">
+            <slot name="title"></slot>
+            <Icon type="ios-arrow-down" :class="[prefixCls + '-submenu-title-icon']"></Icon>
         </div>
-        <ul :class="[prefixCls]" v-if="mode === 'vertical'"></ul>
+        <ul :class="[prefixCls]" v-if="mode === 'vertical'" v-show="opened"><slot></slot></ul>
         <Drop v-else v-show="opened" placement="bottom" transition="slide-up" v-ref:drop><slot></slot></Drop>
     </li>
 </template>
@@ -20,6 +20,10 @@
             key: {
                 type: [String, Number],
                 required: true
+            },
+            disabled: {
+                type: Boolean,
+                default: false
             }
         },
         data () {
@@ -35,28 +39,47 @@
                     `${prefixCls}-submenu`,
                     {
                         [`${prefixCls}-item-active`]: this.active,
-                        [`${prefixCls}-opened`]: this.opened
+                        [`${prefixCls}-opened`]: this.opened,
+                        [`${prefixCls}-submenu-disabled`]: this.disabled
                     }
                 ]
             },
             mode () {
                 return this.$parent.mode;
+            },
+            accordion () {
+                return this.$parent.accordion;
             }
         },
         methods: {
             handleMouseenter () {
+                if (this.disabled) return;
                 if (this.mode === 'vertical') return;
+
                 clearTimeout(this.timeout);
                 this.timeout = setTimeout(() => {
                     this.opened = true;
                 }, 250);
             },
             handleMouseleave () {
+                if (this.disabled) return;
                 if (this.mode === 'vertical') return;
+
                 clearTimeout(this.timeout);
                 this.timeout = setTimeout(() => {
                     this.opened = false;
                 }, 150);
+            },
+            handleClick () {
+                if (this.disabled) return;
+                if (this.mode === 'horizontal') return;
+                const opened = this.opened;
+                if (this.accordion) {
+                    this.$parent.$children.forEach(item => {
+                        if (item.$options.name === 'Submenu') item.opened = false;
+                    });
+                }
+                this.opened = !opened;
             }
         },
         watch: {
diff --git a/src/styles/components/menu.less b/src/styles/components/menu.less
index df4c69f..ed2886e 100644
--- a/src/styles/components/menu.less
+++ b/src/styles/components/menu.less
@@ -41,6 +41,7 @@
                 top: 0;
                 bottom: 0;
                 right: 0;
+                z-index: 1;
             }
         }
     }
@@ -64,23 +65,14 @@
         z-index: 1;
         cursor: pointer;
         transition: all @transition-time @ease-in-out;
-
-        .@{menu-prefix-cls}-light &{
-            color: @text-color;
-        }
-        .@{menu-prefix-cls}-dark &{
-            color: @subsidiary-color;
-            &-active, &:hover{
-                color: #fff;
-            }
-        }
-        .@{menu-prefix-cls}-primary &{
-            color: #fff;
-            &-active, &:hover{
-                background: @link-active-color;
-            }
-        }
     }
+    &-item > i{
+        margin-right: 6px;
+    }
+    &-submenu-title > i, &-submenu-title span > i{
+        margin-right: 8px;
+    }
+
     &-horizontal &-item,
     &-horizontal &-submenu
     {
@@ -88,7 +80,7 @@
         padding: 0 20px;
         position: relative;
         cursor: pointer;
-        z-index: 1;
+        z-index: 3;
         transition: all @transition-time @ease-in-out;
     }
 
@@ -96,19 +88,22 @@
         height: inherit;
         line-height: inherit;
         border-bottom: 2px solid transparent;
+        color: @text-color;
         &-active, &:hover{
             color: @primary-color;
             border-bottom: 2px solid @primary-color;
         }
     }
 
-    &-dark&-horizontal &-item{
+    &-dark&-horizontal &-item, &-dark&-horizontal &-submenu{
+        color: @subsidiary-color;
         &-active, &:hover{
             color: #fff;
         }
     }
 
-    &-primary&-horizontal &-item{
+    &-primary&-horizontal &-item, &-primary&-horizontal &-submenu{
+        color: #fff;
         &-active, &:hover{
             background: @link-active-color;
         }
@@ -128,11 +123,57 @@
         line-height: normal;
         &-title {
             padding-left: 8px;
-            font-size: 12px;
+            font-size: @font-size-small;
             color: @legend-color;
             height: 30px;
             line-height: 30px;
         }
     }
+
+    // vertical
+    &-vertical &-item,
+    &-vertical &-submenu-title
+    {
+        padding: 14px 24px;
+        position: relative;
+        cursor: pointer;
+        z-index: 1;
+        transition: all @transition-time @ease-in-out;
+
+        &:hover{
+            background: @background-color-select-hover;
+        }
+    }
+
+    &-vertical &-submenu-title-icon{
+        float: right;
+        position: relative;
+        top: 4px;
+    }
+    &-submenu-title-icon {
+        transition: transform @transition-time @ease-in-out;
+    }
+    &-opened &-submenu-title-icon{
+        transform: rotate(180deg);
+    }
+
+    &-vertical &-submenu &-item{
+        padding-left: 43px;
+    }
+    &-vertical &-item-group{
+        &-title{
+            font-size: @font-size-base;
+            padding-left: 28px;
+        }
+    }
+
+    &-light&-vertical &-item{
+        border-right: 2px solid transparent;
+        &-active:not(.@{menu-prefix-cls}-submenu){
+            color: @primary-color;
+            border-right: 2px solid @primary-color;
+            z-index: 2;
+        }
+    }
 }
 .select-item(@menu-prefix-cls, @menu-dropdown-item-prefix-cls);
\ No newline at end of file
diff --git a/test/routers/menu.vue b/test/routers/menu.vue
index cf73813..f9986fb 100644
--- a/test/routers/menu.vue
+++ b/test/routers/menu.vue
@@ -1,14 +1,12 @@
 <template>
     <div>
-        <i-button @click="toggleMode">调整方向</i-button>
-        <Menu :mode="mode" active-key="1">
+        <Menu mode="horizontal" active-key="1">
             <Menu-item key="1">
-                <Icon type="ionic"></Icon>
-                <span>导航一</span>
+                <Icon type="ionic"></Icon><span>导航一</span>
             </Menu-item>
             <Menu-item key="2">导航二</Menu-item>
             <Submenu key="3">
-                <span slot="title">导航三</span>
+                <template slot="title"><Icon type="ionic"></Icon>导航三</template>
                 <Menu-group title="集合1">
                     <Menu-item key="3-1">导航三 - 一</Menu-item>
                     <Menu-item key="3-2">导航三 - 二</Menu-item>
@@ -21,6 +19,65 @@
             <Menu-item key="4">导航四</Menu-item>
         </Menu>
         <br><br>
+        <Menu :mode="mode" active-key="1" accordion>
+            <Menu-item key="1">
+                <Icon type="ionic"></Icon>
+                <span>导航一</span>
+            </Menu-item>
+            <Menu-group title="集合1">
+                <Menu-item key="2">
+                    <Icon type="ionic"></Icon>
+                    导航二
+                </Menu-item>
+                <Menu-item key="3">导航三</Menu-item>
+            </Menu-group>
+            <Menu-group title="集合2">
+                <Menu-item key="4">导航四</Menu-item>
+                <Menu-item key="5">导航五</Menu-item>
+            </Menu-group>
+            <Submenu key="6">
+                <template slot="title"><Icon type="ionic"></Icon>导航六</template>
+                <Menu-group title="集合1">
+                    <Menu-item key="3-1">导航三 - 一</Menu-item>
+                    <Menu-item key="3-2">导航三 - 二</Menu-item>
+                </Menu-group>
+                <Menu-group title="集合2">
+                    <Menu-item key="3-3">导航三 - 三</Menu-item>
+                    <Menu-item key="3-4">导航三 - 四</Menu-item>
+                </Menu-group>
+            </Submenu>
+            <Submenu key="7">
+                <template slot="title"><Icon type="ionic"></Icon>导航七</template>
+                <Menu-group title="集合1">
+                    <Menu-item key="7-1">导航三 - 一</Menu-item>
+                    <Menu-item key="7-2">导航三 - 二</Menu-item>
+                </Menu-group>
+                <Menu-group title="集合2">
+                    <Menu-item key="7-3">导航三 - 三</Menu-item>
+                    <Menu-item key="7-4">导航三 - 四</Menu-item>
+                </Menu-group>
+            </Submenu>
+        </Menu>
+        <!--<Menu :mode="mode" active-key="1">-->
+            <!--<Menu-item key="1">-->
+                <!--<Icon type="ionic"></Icon>-->
+                <!--<span>导航一</span>-->
+            <!--</Menu-item>-->
+            <!--<Menu-item key="2">导航二</Menu-item>-->
+            <!--<Submenu key="3">-->
+                <!--<template slot="title"><Icon type="ionic"></Icon><span>导航三</span></template>-->
+                <!--<Menu-group title="集合1">-->
+                    <!--<Menu-item key="3-1">导航三 - 一</Menu-item>-->
+                    <!--<Menu-item key="3-2">导航三 - 二</Menu-item>-->
+                <!--</Menu-group>-->
+                <!--<Menu-group title="集合2">-->
+                    <!--<Menu-item key="3-3">导航三 - 三</Menu-item>-->
+                    <!--<Menu-item key="3-4">导航三 - 四</Menu-item>-->
+                <!--</Menu-group>-->
+            <!--</Submenu>-->
+            <!--<Menu-item key="4">导航四</Menu-item>-->
+        <!--</Menu>-->
+        <!--<br><br>-->
         <!--<Menu mode="horizontal" theme="dark" active-key="1">-->
             <!--<Menu-item key="1">-->
                 <!--<Icon type="ionic"></Icon>-->
@@ -57,7 +114,7 @@
         props: {},
         data () {
             return {
-                mode: 'horizontal'
+                mode: 'vertical'
             }
         },
         computed: {},
--
libgit2 0.21.4