При наведении фоновое изображение исчезает за текстом

0

С помощью предыдущей помощи Stackover я сделал меню наведения, отображающее дни недели. Когда вы наведите курсор на день, изображение появляется с текстом сверху. Я дошел до этого. Однако теперь моя проблема заключается в следующем: когда вы наводите курсор на текст, изображение за ним скрывается.

Я подумал, может быть, это проблема, которая может быть исправлена с помощью z-index, но это не сработало.

Я сделал JSfiddle

Вот мой CSS

#nav {
display:inline;
list-style:none;
position:fixed;
width:1290px;
margin:0 auto; 
left:0px; 
right:0px;
float:clear;
top:130px;
z-index:1000;

}

.menu li {
display:inline;
vertical-align:top; 
float:left;

}

.menu li a {
display:block;
height:407px;
width:250px;

}

.img1 {
width:250px;
height:407px;
position:relative;
}

.thursButton {
width:250px;
height:407px;
display:block;
}

#thursButton {
background-image:url('http://static.tumblr.com/2wdsnoc/K8umxhswx/thu.png');
}

#thursButton:hover {
background-image:url('http://static.tumblr.com/2wdsnoc/6Rxmxht1d/thu-hover.png');
}
.left p {
color:#FFFFFF;
display:none;
font-size:20px;
left:5px;
position:absolute;
text-shadow:1px 1px 1px #000000;
text-transform:uppercase;
top:100px;
width:245px;
 white-space: pre-line;
word-wrap: break-word;


}

.left:hover p {
display:block;

}

HTML-код

<div id="nav"> <div style="display:inline-block;white-space: nowrap">
<ul class="menu">
    <li>
        <div class="img1 left"> <a href="#" id="thursButton" class="thursButton" border="0"></a>

            <p><u>Thursday, 19th</u>
Text
<br/>Text
            </p>
        </div>
    </li>
    <li>

            </p>
        </div>
    </li>

Спасибо Stackoverflow, как всегда!

Теги:
menu

2 ответа

1
Лучший ответ

Вам нужно изменить то, что активирует зависание.

Я также видел по крайней мере 7-10 из этих вопросов... Мы здесь, чтобы помочь не выполнять проект для вас.

Чтобы объяснить, почему это происходит,

Вы нацеливаете #thursButton на состояние зависания, что означает, что вы должны парить над этим, чтобы внести изменения. После того, как вы наведете над текстом, вы больше не #thursButton над #thursButton.

То, что я сделал, это добавить состояние зависания на родительском, так что когда бы вы не зависели от родителя, сообщите ребенку о внесении изменения.

Это то, что нужно изменить,

#thursButton:hover {
    background-image:url('http://static.tumblr.com/2wdsnoc/6Rxmxht1d/thu-hover.png');
}

чтобы,

.img1:hover #thursButton {
    background-image:url('http://static.tumblr.com/2wdsnoc/6Rxmxht1d/thu-hover.png');
}

Вот JSFIDDLE.

  • 0
    Я знаю ... прости. Я ценю всю вашу помощь, и я беру все на борт. Клянусь, я не ленивый. Я обращаюсь к ТАК только когда я действительно застрял. Я проглотил две книги по CSS и посмотрел множество видео
  • 0
    Не нужно извиняться, приятель, лучший совет, который я мог бы дать, - попытаться выделить все проблемы в основную проблему. CSS может быть сложно изучить, и я только начал изучать все это 2 года назад. Желаем удачи независимо от друга, и, надеюсь, теперь это плавный ход. :]
Показать ещё 9 комментариев
1

Проблема заключается в укладке ваших элементов. Вы наводите курсор на a, но когда вы наводите текст, вы больше не зависете от a, у которого есть фон.

Ответ Джоша работает отлично, однако вы также можете решить его с помощью указателей-событий.

Измените следующий CSS:

.left p {
   color: #FFFFFF;
   display: none;
   font-size: 20px;
   left: 5px;
   position: absolute;
   text-shadow: 1px 1px 1px #000000;
   text-transform: uppercase;
   top: 100px;
   width: 245px;
   white-space: pre-line;
   word-wrap: break-word;
   pointer-events: none;
}

Это заставит p не иметь никаких событий мыши. Это приводит к зависанию в работе.

  • 0
    +1 для указателей-событий - хороший. Хотя не поддерживается в IE10 и менее.
  • 0
    Ух ты ... понятия не имел о событиях указателя. Читая о них сейчас. Спасибо, Сандер Коедуд!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню