簡體   English   中英

水平li-垂直對齊元素

[英]Horizontal li - align element vertically

我在CSS display: inline;使用<ul> display: inline; 設置為用作頁面頂部的工具欄/菜單,如下所示:

在此處輸入圖片說明

如您所見,文本在垂直方向上完美對齊,但是左側的img太高,右側的輸入框略低。 我正在努力移動它們,以使其完全垂直對齊。

以下是我的CSS:

.mynav {
    font-weight: 300;
    border: 1px solid #ccc;
    border-width: 1px 0;
    list-style: none;
    margin: 0;
    padding: 0;
    text-align: center;
    background-color: #0067b1;
}

.mynav li {
    display: inline;
      align-items: center;
        vertical-align:middle;
  line-height:35px;
}

.mynav a {
    color: white;
    display: inline-block;
    padding: 15px;
    font-size: 14pt;
    text-decoration: none;
}

.mynav input {
    margin-left: 25px;
    font-family: 'Open Sans', sans-serif;
    font-weight: 300;
    font-style: italic;
    -moz-border-radius: 10px;
    border-radius: 10px;
    border: none;
    padding: 5px;
    width: 200px;
    height: 25px;
    margin-top: 0px;
}

.mynav i
{
    font-weight: 300;
    color: white;
    font-size: 24px;
    margin-left: 15px;
}

還有我的HTML(如果需要):

<ul class="mynav">
    <li><img src="http://www.advancegroupholdings.com.au/my_logo_nav.png" style="width: 100px; height:25px; padding-right:25px;" /></li>
    <li><a href="/">My Jobs</a></li>
    <li><a href="/about/">Obtain a Quote</a></li>
    <li><a href="/work/">Submit New Instruction</a></li>
    <li><a href="/clients/">Settings</a></li>
    <li><a href="/contact/">Help</a></li>
    <li><input type="text" placeholder="Enter Your Ref or Job Number"/><i class="fa fa-search"></i></li>
</ul>

至於輸入框,它的填充為5,我嘗試刪除該填充沒有運氣。 我還在輸入上設置了margin-top: 0px ,仍然沒有運氣。

至於徽標,我也很困惑。 我嘗試添加margin-top: 5px ,但是它不起作用。

我也在StackOverflow上找到了這兩個問題:

<ul>水平導航欄...垂直對齊的元素

CSS-Vertically對齊水平線

第一個無效,第二個想要更改CSS以display: flex ,對我來說它擺脫了水平條,不是嗎?

誰能幫助我使徽標和輸入框(以及放大鏡)垂直居中? 先感謝您!

在這里暴跌

將下兩個規則添加到圖像將使其正確居中。

display: inline-block;
vertical-align: sub; /* or text-bottom */

至於輸入,它看起來正確地居中。

我為您創建了一個小的引導示例。 與您所擁有的有所不同,但是或多或少地提供所需的輸出。 如果此解決方案適合您,希望您可以從這里繼續。

HTML

  <div class="col-md-2"><img src="http://www.advancegroupholdings.com.au/my_logo_nav.png"  /></div>
    <div class="col-md-1">My Jobs</div>
    <div class="col-md-2">Obtain a Quote</div>
    <div class="col-md-2">Submit a New Instruction</div>
    <div class="col-md-1">Settings</div>
    <div class="col-md-1">Help</div>
    <div class="col-md-3"><input class="inputHeight" type="text" placeholder="Enter Your Ref or Job Number"/><i class="fa fa-search"></i></div>
  </div>
</div>

CSS

 .navbar {
  width:80%;
   font-weight: 300;
    border: 1px solid #ccc;
    border-width: 1px 0;
    margin: 0;
    padding: 0;
    text-align: center;
    background-color: #0067b1;
    vertical-align:middle;
    line-height:50px;
}

.inputHeight {
    margin-left: 25px;
    font-family: 'Open Sans', sans-serif;
    font-weight: 300;
    font-style: italic;
    -moz-border-radius: 10px;
    border-radius: 10px;
    border: none;
    padding: 5px;
    width: 200px;
    height: 25px;
    margin-top: 0px;

}

柱塞示例

在您的特定示例中,只需添加vertical-align:middle <img><a><i>元素! 另外,我建議將<li>元素設置為內聯塊,而不是內聯,以提高靈活性。

通常,要垂直對齊,圖像高度必須等於該行中其他元素的line-height ,並且必須設置vertical-align:middle

如果圖像高度為25px,則設置:

.mynav li, .mynav i {
    vertical-align:middle;
    line-height:25px;
}
img {
    vertical-align:middle;
    height: 25px;
    line-height:25px;
}

在這里,您可以前往: https : //plnkr.co/edit/Xf3uvvjuqykQMjnhVxes?p=preview

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM