2017-03-03 59 views
0

我將堆疊的圖標與我的菜單在同一高度對齊。 這裏html代碼:如何使我的菜單以verticaly爲中心

/* 
 
====================== MAIN ====================== 
 

 
*/ 
 
.main-menu { 
 
    background-color: #ffffff; 
 
    padding: 16px 5px; 
 
    margin: 0; 
 
    display: inline-block; 
 
    position: relative; 
 
\t width: 100%; 
 
} 
 
.main-menu:before, 
 
.main-menu ul, 
 
.main-menu li, 
 
.main-menu a { 
 
    -webkit-box-sizing: border-box; 
 
    -moz-box-sizing: border-box; 
 
    box-sizing: border-box; 
 
    margin: 0; 
 
    padding: 0; 
 
    outline: none; 
 
    border: 0; 
 
    list-style: none; 
 
} 
 
.main-menu a { 
 
    cursor: pointer; 
 
} 
 

 
.main-menu, 
 
.main-menu a, 
 
.main-menu a:visited { 
 
    color: #555555; 
 
} 
 
.main-menu > li { 
 
    display: inline-block; 
 
\t vertical-align: middle; 
 
    float: left; 
 
    -webkit-border-radius: 3px; 
 
    -moz-border-radius: 3px; 
 
    border-radius: 3px; 
 
} 
 

 
.main-menu > li > a { 
 
    font-weight: bold; 
 
    padding: 0 10px; 
 
    line-height: 39px; 
 
} 
 
.main-menu > li:hover { 
 
    background-color: #8B008B; 
 
} 
 
.main-menu > li:hover > a, 
 
.main-menu > li:hover > a:visited { 
 
    color: #ffffff; 
 
} 
 
.main-menu li { 
 
    position: relative; 
 
    cursor: default; 
 
} 
 
.main-menu li > a { 
 
    text-decoration: none; 
 
    display: block; 
 
} 
 
.main-menu li > ul{ 
 
    z-index: 1; 
 
} 
 

 
.main-menu .fa { 
 
    font-size: 12pt; 
 
    letter-spacing: 8px; 
 
    line-height: inherit; 
 
} 
 

 
.main-menu:after { 
 
    content: ''; 
 
    display: block; 
 
    clear: both; 
 
} 
 
/* 
 

 
====================== LOGO ====================== 
 

 
*/ 
 
.main-menu > li.mm-logo { 
 
    float: left; 
 
    margin-left: 0; 
 
    font-size: 0; 
 
    display: inline-block; 
 
    vertical-align: middle; 
 
} 
 
.main-menu > li.mm-logo a { 
 
    padding: 0; 
 
    line-height: 0; 
 
} 
 
.main-menu > li.mm-logo img { 
 
border: none; 
 
display: block; 
 
padding:0px; 
 
height: 118px; 
 
width: 118px; 
 
} 
 
.main-menu > li.mm-logo:hover { 
 
background: none; 
 
} 
 
/* 
 

 

 
====================== RESPONSIVE ====================== 
 

 
*/ 
 
@media screen and (max-width: 768px) { 
 
    /* ====================== MAIN ====================== */ 
 
    .main-menu[class*='mm-response'] > li { 
 
    position: relative; 
 
    } 
 
    .main-menu[class*='mm-response'] > li > ul{ 
 
    left: 0; 
 
    right: 0; 
 
    width: auto !important; 
 
    margin-right: 0; 
 
    } 
 
    .main-menu[class*='mm-response'] > li > ul ul { 
 
    top: 100%; 
 
    margin-left: 39px !important; 
 
    } 
 

 
    /* ====================== SWITCH ====================== */ 
 
    .main-menu.mm-response-switch > li { 
 
    display: none; 
 
    float: none; 
 
    position: relative; 
 
    width: 100%; 
 
    } 
 
    .main-menu.mm-response-switch > li + li { 
 
    margin-left: 0; 
 
    margin-top: 10px; 
 
    } 
 
    .main-menu.mm-response-switch > li.mm-logo { 
 
    display: block; 
 
    } 
 
    .main-menu.mm-response-switch > li.mm-logo img { 
 
    position: relative; 
 
    z-index: 1; 
 
    } 
 
    .main-menu.mm-response-switch:before { 
 
    font-family: FontAwesome; 
 
    content: '\f0c9'; 
 
    position: relative; 
 
    float: right; 
 
    cursor: pointer; 
 
    line-height: 39px; 
 
    height: 39px; 
 
    padding: 0 14px; 
 
    z-index: 2; 
 
    } 
 
    .main-menu.mm-response-switch:hover:before { 
 
    opacity: 0; 
 
    } 
 
    .main-menu.mm-response-switch:hover > li { 
 
    display: block; 
 
    } 
 

 
    /* ====================== RESPONSE MARGIN ====================== */ 
 
    .main-menu.mm-response-margin > li > ul { 
 
    margin-left: 39px !important; 
 
    } 
 
}
<nav> 
 
<ul onClick="" class="main-menu mm-response-switch"> 
 
     <li class="mm-logo"> 
 
        <a href="index.php"><img src="logo.png" alt="Accueil"></a> 
 
       </li> 
 
     <li> 
 
       <a href="#"><i class="fa fa-indent"></i>Lien 1</a> 
 
     </li> 
 
     <li> 
 
       <a href="#"><i class="fa fa-indent"></i>Lien 2</a> 
 
     </li> 
 
       <li> 
 
       <a href="#"><i class="fa fa-indent"></i>Lien 2</a> 
 
     </li> 
 
    </ul> 
 
</nav>

不給,反應靈敏的部分更重要,只是我的GUID如何在verticaly同一行的所有元素。 謝謝你的幫助。

+0

嗨,你有沒有得到解決您的問題?如果您覺得問題已解決,您應該接受答案。您可以在答案旁邊接受答案,並選擇小複選標記。 –

回答

1

li元素中取出漂浮,因爲li的是inline-block他們將垂直對齊,並且您已經分配vertical-align: middle

/* 
 
====================== MAIN ====================== 
 

 
*/ 
 
.main-menu { 
 
    background-color: #ffffff; 
 
    padding: 16px 5px; 
 
    margin: 0; 
 
    display: inline-block; 
 
    position: relative; 
 
\t width: 100%; 
 
} 
 
.main-menu:before, 
 
.main-menu ul, 
 
.main-menu li, 
 
.main-menu a { 
 
    -webkit-box-sizing: border-box; 
 
    -moz-box-sizing: border-box; 
 
    box-sizing: border-box; 
 
    margin: 0; 
 
    padding: 0; 
 
    outline: none; 
 
    border: 0; 
 
    list-style: none; 
 
} 
 
.main-menu a { 
 
    cursor: pointer; 
 
} 
 

 
.main-menu, 
 
.main-menu a, 
 
.main-menu a:visited { 
 
    color: #555555; 
 
} 
 
.main-menu > li { 
 
    display: inline-block; 
 
\t vertical-align: middle; 
 
    -webkit-border-radius: 3px; 
 
    -moz-border-radius: 3px; 
 
    border-radius: 3px; 
 
} 
 

 
.main-menu > li > a { 
 
    font-weight: bold; 
 
    padding: 0 10px; 
 
    line-height: 39px; 
 
} 
 
.main-menu > li:hover { 
 
    background-color: #8B008B; 
 
} 
 
.main-menu > li:hover > a, 
 
.main-menu > li:hover > a:visited { 
 
    color: #ffffff; 
 
} 
 
.main-menu li { 
 
    position: relative; 
 
    cursor: default; 
 
} 
 
.main-menu li > a { 
 
    text-decoration: none; 
 
    display: block; 
 
} 
 
.main-menu li > ul{ 
 
    z-index: 1; 
 
} 
 

 
.main-menu .fa { 
 
    font-size: 12pt; 
 
    letter-spacing: 8px; 
 
    line-height: inherit; 
 
} 
 

 
.main-menu:after { 
 
    content: ''; 
 
    display: block; 
 
    clear: both; 
 
} 
 
/* 
 

 
====================== LOGO ====================== 
 

 
*/ 
 
.main-menu > li.mm-logo { 
 
    margin-left: 0; 
 
    font-size: 0; 
 
    display: inline-block; 
 
    vertical-align: middle; 
 
} 
 
.main-menu > li.mm-logo a { 
 
    padding: 0; 
 
    line-height: 0; 
 
} 
 
.main-menu > li.mm-logo img { 
 
border: none; 
 
display: block; 
 
padding:0px; 
 
height: 118px; 
 
width: 118px; 
 
} 
 
.main-menu > li.mm-logo:hover { 
 
background: none; 
 
} 
 
/* 
 

 

 
====================== RESPONSIVE ====================== 
 

 
*/ 
 
@media screen and (max-width: 768px) { 
 
    /* ====================== MAIN ====================== */ 
 
    .main-menu[class*='mm-response'] > li { 
 
    position: relative; 
 
    } 
 
    .main-menu[class*='mm-response'] > li > ul{ 
 
    left: 0; 
 
    right: 0; 
 
    width: auto !important; 
 
    margin-right: 0; 
 
    } 
 
    .main-menu[class*='mm-response'] > li > ul ul { 
 
    top: 100%; 
 
    margin-left: 39px !important; 
 
    } 
 

 
    /* ====================== SWITCH ====================== */ 
 
    .main-menu.mm-response-switch > li { 
 
    display: none; 
 
    float: none; 
 
    position: relative; 
 
    width: 100%; 
 
    } 
 
    .main-menu.mm-response-switch > li + li { 
 
    margin-left: 0; 
 
    margin-top: 10px; 
 
    } 
 
    .main-menu.mm-response-switch > li.mm-logo { 
 
    display: block; 
 
    } 
 
    .main-menu.mm-response-switch > li.mm-logo img { 
 
    position: relative; 
 
    z-index: 1; 
 
    } 
 
    .main-menu.mm-response-switch:before { 
 
    font-family: FontAwesome; 
 
    content: '\f0c9'; 
 
    position: relative; 
 
    float: right; 
 
    cursor: pointer; 
 
    line-height: 39px; 
 
    height: 39px; 
 
    padding: 0 14px; 
 
    z-index: 2; 
 
    } 
 
    .main-menu.mm-response-switch:hover:before { 
 
    opacity: 0; 
 
    } 
 
    .main-menu.mm-response-switch:hover > li { 
 
    display: block; 
 
    } 
 

 
    /* ====================== RESPONSE MARGIN ====================== */ 
 
    .main-menu.mm-response-margin > li > ul { 
 
    margin-left: 39px !important; 
 
    } 
 
}
<nav> 
 
<ul onClick="" class="main-menu mm-response-switch"> 
 
     <li class="mm-logo"> 
 
        <a href="index.php"><img src="logo.png" alt="Accueil"></a> 
 
       </li> 
 
     <li> 
 
       <a href="#"><i class="fa fa-indent"></i>Lien 1</a> 
 
     </li> 
 
     <li> 
 
       <a href="#"><i class="fa fa-indent"></i>Lien 2</a> 
 
     </li> 
 
       <li> 
 
       <a href="#"><i class="fa fa-indent"></i>Lien 2</a> 
 
     </li> 
 
    </ul> 
 
</nav>

您還可以使用Flexbox的並分配display: flex; align-items: center;給父母ul

/* 
 
====================== MAIN ====================== 
 

 
*/ 
 
.main-menu { 
 
    background-color: #ffffff; 
 
    padding: 16px 5px; 
 
    margin: 0; 
 
    position: relative; 
 
\t width: 100%; 
 
    display: flex; 
 
    align-items: center; 
 
} 
 
.main-menu:before, 
 
.main-menu ul, 
 
.main-menu li, 
 
.main-menu a { 
 
    -webkit-box-sizing: border-box; 
 
    -moz-box-sizing: border-box; 
 
    box-sizing: border-box; 
 
    margin: 0; 
 
    padding: 0; 
 
    outline: none; 
 
    border: 0; 
 
    list-style: none; 
 
} 
 
.main-menu a { 
 
    cursor: pointer; 
 
} 
 

 
.main-menu, 
 
.main-menu a, 
 
.main-menu a:visited { 
 
    color: #555555; 
 
} 
 
.main-menu > li { 
 
    display: inline-block; 
 
\t vertical-align: middle; 
 
    -webkit-border-radius: 3px; 
 
    -moz-border-radius: 3px; 
 
    border-radius: 3px; 
 
} 
 

 
.main-menu > li > a { 
 
    font-weight: bold; 
 
    padding: 0 10px; 
 
    line-height: 39px; 
 
} 
 
.main-menu > li:hover { 
 
    background-color: #8B008B; 
 
} 
 
.main-menu > li:hover > a, 
 
.main-menu > li:hover > a:visited { 
 
    color: #ffffff; 
 
} 
 
.main-menu li { 
 
    position: relative; 
 
    cursor: default; 
 
} 
 
.main-menu li > a { 
 
    text-decoration: none; 
 
    display: block; 
 
} 
 
.main-menu li > ul{ 
 
    z-index: 1; 
 
} 
 

 
.main-menu .fa { 
 
    font-size: 12pt; 
 
    letter-spacing: 8px; 
 
    line-height: inherit; 
 
} 
 

 
.main-menu:after { 
 
    content: ''; 
 
    display: block; 
 
    clear: both; 
 
} 
 
/* 
 

 
====================== LOGO ====================== 
 

 
*/ 
 
.main-menu > li.mm-logo { 
 
    margin-left: 0; 
 
    font-size: 0; 
 
    display: inline-block; 
 
    vertical-align: middle; 
 
} 
 
.main-menu > li.mm-logo a { 
 
    padding: 0; 
 
    line-height: 0; 
 
} 
 
.main-menu > li.mm-logo img { 
 
border: none; 
 
display: block; 
 
padding:0px; 
 
height: 118px; 
 
width: 118px; 
 
} 
 
.main-menu > li.mm-logo:hover { 
 
background: none; 
 
} 
 
/* 
 

 

 
====================== RESPONSIVE ====================== 
 

 
*/ 
 
@media screen and (max-width: 768px) { 
 
    /* ====================== MAIN ====================== */ 
 
    .main-menu[class*='mm-response'] > li { 
 
    position: relative; 
 
    } 
 
    .main-menu[class*='mm-response'] > li > ul{ 
 
    left: 0; 
 
    right: 0; 
 
    width: auto !important; 
 
    margin-right: 0; 
 
    } 
 
    .main-menu[class*='mm-response'] > li > ul ul { 
 
    top: 100%; 
 
    margin-left: 39px !important; 
 
    } 
 

 
    /* ====================== SWITCH ====================== */ 
 
    .main-menu.mm-response-switch > li { 
 
    display: none; 
 
    float: none; 
 
    position: relative; 
 
    width: 100%; 
 
    } 
 
    .main-menu.mm-response-switch > li + li { 
 
    margin-left: 0; 
 
    margin-top: 10px; 
 
    } 
 
    .main-menu.mm-response-switch > li.mm-logo { 
 
    display: block; 
 
    } 
 
    .main-menu.mm-response-switch > li.mm-logo img { 
 
    position: relative; 
 
    z-index: 1; 
 
    } 
 
    .main-menu.mm-response-switch:before { 
 
    font-family: FontAwesome; 
 
    content: '\f0c9'; 
 
    position: relative; 
 
    float: right; 
 
    cursor: pointer; 
 
    line-height: 39px; 
 
    height: 39px; 
 
    padding: 0 14px; 
 
    z-index: 2; 
 
    } 
 
    .main-menu.mm-response-switch:hover:before { 
 
    opacity: 0; 
 
    } 
 
    .main-menu.mm-response-switch:hover > li { 
 
    display: block; 
 
    } 
 

 
    /* ====================== RESPONSE MARGIN ====================== */ 
 
    .main-menu.mm-response-margin > li > ul { 
 
    margin-left: 39px !important; 
 
    } 
 
}
<nav> 
 
    <ul onClick="" class="main-menu mm-response-switch"> 
 
    <li class="mm-logo"> 
 
     <a href="index.php"><img src="logo.png" alt="Accueil"></a> 
 
    </li> 
 
    <li> 
 
     <a href="#"><i class="fa fa-indent"></i>Lien 1</a> 
 
    </li> 
 
    <li> 
 
     <a href="#"><i class="fa fa-indent"></i>Lien 2</a> 
 
    </li> 
 
    <li> 
 
     <a href="#"><i class="fa fa-indent"></i>Lien 2</a> 
 
    </li> 
 
    </ul> 
 
</nav>

+0

哦,男人,是的,它真的對我很有幫助,感謝很多,只是另一個問題,我有一個鏈接,它應該是在菜單的正確位置,我給他的課程「毫米右項目」與該CSS代碼:.main-menu> li.mm-right-item {margin-right:0; float:right; }它在第一個解決方案的右邊,但不在中間,我猜這個float方法在這種情況下不起作用。 – Omarname

0

有幾種方法可以做到這一點;

的一種技術是,得到母體位置:相對的,則絕對定位標誌top: 50%然後transformY(-50%)這轉化用英語「在父標誌的頂部1/2的方式向下的位置,然後移動標誌1向上/ 2的高度

有不同的技術在這裏使用一個方便的流程圖 https://css-tricks.com/centering-css-complete-guide/

+0

嗯,我試過所有的解決方案沒有成功:/ – Omarname

0

試試這個:。

.main-menu{ 
    display: flex; 
    align-items: center; 
} 

的d將其還原爲display:block時,屏幕太小:

@media screen and (max-width: 768px) 
.main-menu{ 
    flex-direction: column; 
} 

如果您想了解Flexbox的更多信息,我建議你這篇大文章:https://css-tricks.com/snippets/css/a-guide-to-flexbox/

+0

我試過這個解決方案,它的工作,但所有其他元素在響應模式下錯過了。 – Omarname

+0

我編輯了我的答案,以便您的響應式佈局應該仍在工作 – Paul

+0

當然,有時我很愚蠢。你拯救了我的生命的人非常感謝你,你是一個天才。 只是另一個問題,我有一個鏈接,它應該是在菜單的正確位置,我給了他的類「mm-right-item」與該CSS代碼: .main-menu> li。mm-right-item {0} {0} {0} {0} float:right; } 但它沒有去右邊。 – Omarname