2016-10-17 7 views
1

Я пытаюсь найти способ поместить навигационную панель за некоторыми фоновыми изображениями, которые повторяются. Вот он: enter image description hereHtml/css: Поместите элементы за повторяющийся фон

В принципе, я хочу иметь навигационную панель позади изображения повторяющихся растений, но перед изображением солнца. Я собираюсь сделать всплывающие окна nav, когда они зависнут. Вот мой CSS для заголовка:

header { 
    height: 250px; 
    width: 100%; 
    background-image: url("top.png"), url("banner.png"); 
    background-repeat: repeat-x, no-repeat; 
    background-size: auto 40px, cover; 
    background-position: bottom; 
} 
+1

Нужно больше кода здесь (желательно рабочий фрагмент). Если вы используете несколько изображений bg на одном и том же элементе, вы, вероятно, не сможете выполнить то, что вы пытаетесь сделать. Вам, вероятно, придется поместить их на разные элементы. – Jeff

+0

Итак, мне нужно было бы иметь 2 перекрывающиеся элементы, каждый со своим собственным фоном и z-индексами? – vedi0boy

+0

Трудно узнать, не видя более полного примера того, что у вас есть. – Jeff

ответ

0

Часть решения заключалась в использовании z-индекса в качестве упоминания Howzieky, но не являющегося примером для. Вот как я это сделал:

CSS:

header { 
    height: 250px; 
    width: 100%; 
    position: relative; 
} 

#background-far { 
    height: 250px; 
    width: 100%; 
    background-image: url("banner.png"); 
    background-repeat: no-repeat; 
    background-size: cover; 
    position: absolute; 
    top: 0; 
    left: 0; 
    z-index: 0; 
} 

#header-body { 
    height: 250px; 
    width: 100%; 
    position: absolute; 
    top: 0; 
    left: 0; 
    z-index: 1; 
} 

#background-close { 
    height: 250px; 
    width: 100%; 
    background-image: url("top.png"); 
    background-repeat: repeat-x; 
    background-size: auto 40px; 
    background-position: bottom; 
    position: absolute; 
    top: 0; 
    left: 0; 
    z-index: 2; 
} 

HTML:

<header> 
    <div id="background-far"></div> 
    <div id="header-body"> 
     <img src="logo.png"/> 
    </div> 
    <div id="background-close"></div> 
</header> 

Я также необходимо разделить заголовок на 3 секции (фон-далеко, заголовок-тело и фон-близко). Тело заголовка будет хранить все, что у меня будет в заголовке, например, на панели навигации. Важная роль состояла в том, чтобы использовать заголовок position: relative и каждый раздел использовать position: absolute; top: 0; left: 0;

Спасибо за вашу помощь!

0

Я бы порекомендовал z-index. От W3Schools:

«Свойство Z-индекс определяет порядок стека элемента

Элемент с большим порядком стека всегда впереди элемент с более низким порядком стека..»

Чем больше элемент z-index элемента, тем ближе к нему находится элемент.

+0

Как назначить разные z-index для разных фоновых изображений, как у меня в моем коде? Или я должен делать это по-другому? – vedi0boy

+0

Вы не можете. Это неполный «ответ», который не был указан с вашим примером кода. Вы можете контролировать порядок стекирования нескольких фонов, но это не поможет в вашем случае использования. https://css-tricks.com/stacking-order-of-multiple-backgrounds/ – Jeff

+0

Существует три основных способа сделать это. Чистый HTML: '<* ELEMENT * style =" z-index: * INDEX * ">'. Чистый CSS: '* ELEMENT * {z-index: * INDEX *}'. Чистый Javascript: 'document.getElementById (* ELEMENTID *). Style.zIndex = * INDEX *' – Howzieky

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