2015-06-17 2 views
0

Я хочу, чтобы изображение логотипа в этом навигационном баре заполняло его высоту, сохраняя при этом его соотношение сторон. Оставшаяся ширина должна быть заполнена элементом ul.
Пока ширина элементов ul не равна 100%, изображение отображается правильно.Сделать элемент заполнить остаток div без изменения размера. Изображение

http://jsfiddle.net/5o0b4xLd/

Как я могу это сделать?

Кодекс:

<div id="navbar"> 
<div id="logoBox"> 
    <img src="http://i.imgur.com/wuRN2wD.png" id="logo"> 
</div> 
<ul> 
    <li> 
     <a href="#fakelink"> 
      Item 1 
     </a> 
    </li> 
    <li> 
     <a href="#fakelink"> 
      Item 2 
     </a> 
    </li> 
    <li> 
     <a href="#fakelink"> 
      Item 3 
     </a> 
    </li> 
    <li> 
     <a href="#fakelink"> 
      Item 4 
     </a> 
    </li> 
    <li> 
     <a href="#fakelink"> 
      Item 5 
     </a> 
    </li> 
</ul> 

#navbar { 
    display: flex; 
    width: 80%; 
    height: 3.8em; 
    margin-top: 4em; 
    margin-left: auto; 
    margin-right: auto; 
    background: #f39c12; 
} 

#logoBox { 
    display: inline-block; 
    *display: inline; 
    height: 100%; 
    float: left; 
    margin-left: 1%; 
} 

#logo { 
    max-height: 100%; 
    max-width: 100%; 
} 

#navbar ul { 
    display: inline-block; 
    white-space: nowrap; 
    vertical-align: top; 
    overflow: hidden; 
    width: 100%; 
    height: 100%; 
    right: 0; 
    margin: 0; 
    padding: 0; 
} 

#navbar li { 
    display: inline-block; 
    padding-left: 4%; 
    margin-top: 1.9em; 
    line-height: 0; 
} 

#navbar a { 
    color: #FFFFFF; 
    text-decoration: none; 
    font-size: 1.25em; 
} 
+2

Можете ли вы разместить иллюстрации с желаемым результатом? – potashin

+0

Это должно выглядеть как [this] (http://puu.sh/isafo.png). Даже если интервал в меню «Элементы» неверен. – Busti

ответ

1

Ваш текущий вопрос в #logo атрибутов - max-width и max-height не будет на самом деле расширить DIV, если нет содержимого внутри, что заставляет его расширяться , Кроме того, вы должны установить background-size = cover, чтобы соотношение сторон поддерживалось.

Попробуйте вместо этого:

#logo { max-height: 100%; height: 100%; background-size: cover; }

+0

С этими изменениями изображение просто растягивается на дно, а соотношение сторон теряется. – Busti

+1

Устраните атрибут 'max-width' от' # logo' и добавьте 'width: 100%;' в '# logobox'. У меня есть рабочий JSFiddle здесь: http://jsfiddle.net/vLk4xw8o/ – Pace

+0

Теперь панель навигации появляется в изображении. – Busti

0

здесь редактировать CSS, как следующее: я добавил фоновое изображение & фона размер для масштабирования изображения с помощью ширины. Также скрывая фактическое изображение, чтобы сделать его просто заполнителем, остальная часть кода в порядке.

#logoBox { 
    display: inline-block; 
    *display: inline; 
    height: 100%; 
    float: left; 
    margin-left: 1%; 
    background:url(http://i.imgur.com/wuRN2wD.png) no-repeat; 
    background-size:cover; 
} 

#logo { 
    max-height: 100%; 
    max-width: 100%; 
    visibility:hidden; 
} 
+0

С эти изменения изображения растягиваются на дно, в то время как соотношение сторон теряется. – Busti

+0

соотношение сторон не теряется, его просто лишняя ширина изображения скрыта. вам приходится много жертвовать, в противном случае вы можете выполнить расчеты для размера пикселей логотипа, его навигационной панели и т. д., чтобы полностью соответствовать изображению. – VoidBOY

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