2016-12-20 1 views
0

У меня есть некоторые ссылки для навигации, которые я хотел бы выровнять по правому краю и внизу моего заголовка. Содержание являетсяНе удалось получить содержимое 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> 

и стиль я применяю это

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

Хотя эти линии до правых ок, они не совпадают с нижней частью DIV - https://jsfiddle.net/cujz8tye/. Что мне не хватает?

+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 + , Он позаботится о добавлении для вас необходимых префиксов для всех трех версий синтаксиса flexbox;)

1

Использование CSS Flexbox. Updated Fiddle.

Wrap все внутри контейнера под .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; 
} 

Have взгляд на рабочий фрагмент кода ниже:

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

Возможно, мне что-то не хватает, но когда я смотрю на свой скрипт, содержимое навигационного div центрируется и не выровнено по низу. Как я их обманываю? –

+0

@ Наталия О! Виноват. Пожалуйста, посмотрите, я обновил свой ответ. –

0

Попробуйте использовать этот код:

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

Заменить 40px высотой жатки. В некоторых случаях это приводит к тому, что вертикальное выравнивание работает.

Смежные вопросы