2016-12-20 14 views
0

私は、私のヘッダーの右と一番下に合わせたいナビゲーションリンクをいくつか持っています。 https://jsfiddle.net/cujz8tye/ - 内容はDIVの内容をDIVの下部に揃えるのに問題がある

  <ul class="nav navbar-nav navbar-right"> 
      <li><a href="/dashboard">My Subscriptions</a></li> 
      <li><a href="#">Help</a></li> 
      <li><a rel="nofollow" data-method="delete" href="/logout">Log Out</a></li> 
      </ul> 

であり、私がかけてるスタイルは右のOKまでこれらのラインが、

header ul { 
    float: right; 
    list-style: none; 
    margin-right: 15px; 
    vertical-align: text-bottom; 
} 

して、彼らはdiv要素の下に整列しません。私は何が欠けていますか?

+0

あなたが*フロートしたときに、 'vertical-align'は動作しません。 – kukkuz

+0

何ですか? –

+0

あなたのヘッダータグはどこですか?質問を編集してください –

答えて

0

Flexboxを使用すると、アイテムを垂直方向に簡単に整列できます。

ここupdated Fiddle

関連の修正です:リストはもう浮いとされていません。

.container { 
    display: flex; 
    justify-content: space-between; /* The 2 flex items a#logo and nav will be aligned leftmost and rightmost */ 
    height: 100%; /* flex container will occupy the full height of its parent (73px) */ 
} 
.container > nav { 
    align-self: flex-end; /* this flex item (nav children of .container, not ul directly) will align itself vertically at the bottom. */ 
         /* Because the flex container is by default flex-direction: row thus align-self is for the other axis, vertical */ 
} 

編集:(まだない場合)Autoprefixerを使用IE10 +と互換性があるためには、 。フレックスボックスシンタックスの3つのバージョンすべてに必要なプレフィックスを追加してくれます;)

1

使用CSSフレックスボックスUpdated Fiddle

よう.content-holder下に容器内部のラップのすべて:次に

<div class="content-holder"> 
    <a id="logo" href="#">sample app</a> 
    <nav> 
    <ul class="nav navbar-nav navbar-right"> 
     <li><a href="/dashboard">My Subscriptions</a></li> 
     <li><a href="#">Help</a></li> 
     <li><a rel="nofollow" data-method="delete" href="/logout">Log Out</a></li> 
    </ul> 
    </nav> 
</div> 

、CSSを適用します。

.content-holder { 
    display: flex; 
    height: 60px; 
    align-items: center; 
} 

nav { 
    flex: 1; 
    align-self: flex-end; 
} 

nav ul { 
    margin-top: 0; 
    margin-bottom: 0; 
} 

は、以下の作業スニペットを見てください:

header { 
 
    box-shadow: none; 
 
    background: #44505d; 
 
    border-bottom: none; 
 
    height: 73px; 
 
} 
 

 
#branding { 
 
    height: 60px; 
 
    position: fixed; 
 
    width: 100%; 
 
    top: 0; 
 
    z-index: 100001; 
 
} 
 

 
.content-holder { 
 
    display: flex; 
 
    height: 60px; 
 
    align-items: center; 
 
} 
 

 
#logo { 
 
    font-size: 1.7em; 
 
    color: #fff; 
 
    text-transform: uppercase; 
 
    letter-spacing: -1px; 
 
    font-weight: bold; 
 
} 
 

 
nav { 
 
    flex: 1; 
 
    align-self: flex-end; 
 
} 
 

 
#logo:hover { 
 
    color: #fff; 
 
    text-decoration: none; 
 
}  
 

 
header ul { 
 
    float: right; 
 
    list-style: none; 
 
    margin: 0 15px 0 0; 
 
} 
 

 
header ul li { 
 
    float: left; 
 
    margin-left: 15px; 
 
} 
 

 
body { 
 
    background: #eee; 
 
    padding-top: 73px; 
 
    line-height: 1.4; 
 
    font-family: "Karla", "Helvetica Neue", Arial, Helvetica, sans-serif; 
 
    color: #333; 
 
    font-size: 14px; 
 
    margin: 0; 
 
} 
 

 
a, .clickable { 
 
    color: #53a3c2; 
 
    text-decoration: none; 
 
}
<header id="branding" class="clearFix"> 
 
    <div class="container clearFix"> 
 
    <div class="content-holder"> 
 
     <a id="logo" href="#">sample app</a> 
 
     <nav> 
 
     <ul class="nav navbar-nav navbar-right"> 
 
      <li><a href="/dashboard">My Subscriptions</a></li> 
 
      <li><a href="#">Help</a></li> 
 
      <li><a rel="nofollow" data-method="delete" href="/logout">Log Out</a></li> 
 
     </ul> 
 
     </nav> 
 
    </div> 
 
    </div> 
 
</header>

希望すると、これが役立ちます。

+0

たぶん私は何かが欠けているかもしれませんが、あなたのフィドルを見ると、nav divのコンテンツは中央に配置され、下に整列しません。どのように私はそれらを下にaliginですか? –

+0

@Natalia Oh!私の悪い。私の答えを更新したように見てください。 –

0

は、このコードを使用してみてください:

header { 
    height:40px; 
    line-height: 40px; 
} 

ヘッダの高さ40ピクセルを置き換え。これにより、縦線が強制的に機能することがあります。

関連する問題