Подтвердить что ты не робот

Почему не работает CSS-видимость?

Я добавил класс "spoiler" в CSS для использования, а также для спойлеров. Текст обычно невидим, но появляется, когда мышь нависает над ним, чтобы показать спойлеру тому, кто хочет его прочитать.

.spoiler{
    visibility:hidden;

}
.spoiler:hover {
    visibility:visible;
}

Должно быть простым, но по какой-то причине это не работает. Текст остается невидимым, даже когда я нажимаю на него мышь. Любая идея, что может быть причиной этого?

4b9b3361

Ответ 1

Вы не можете нависнуть над скрытым элементом. Одним из решений является вставка элемента внутри другого контейнера:

CSS

.spoiler span {
    visibility: hidden;
}

.spoiler:hover span {
    visibility: visible;
}

HTML:

Spoiler: <span class="spoiler"><span>E.T. phones home.</span></span>

Демо:

http://jsfiddle.net/DBXuv/

Update

В Chrome можно добавить следующее:

.spoiler {
    outline: 1px solid transparent;
}

Обновлено демо: http://jsfiddle.net/DBXuv/148/

Ответ 2

Он работает не только для текста

.spoiler {
    opacity:0;
}
.spoiler:hover {
    opacity:1;
    -webkit-transition: opacity .25s ease-in-out .0s;
    transition: opacity .25s ease-in-out .0s;
}

Ответ 3

Когда текст невидим, он практически не занимает места, поэтому практически невозможно вызвать событие наведения.

Вы должны попробовать другой подход, например, изменить цвет шрифта:

.spoiler{
    color:white;

}
.spoiler:hover {
    color:black;
}

Ответ 4

:hover pseudo class предназначен только для тегов a в соответствии со спецификацией CSS. Пользовательским агентам не требуется поддержка :hover для не-якорных тегов в соответствии со спецификацией.

Если вы хотите использовать CSS, чтобы сделать видимым текст вашего спойлера, вам нужно разместить теги <a> вокруг вашего содержимого спойлера. Это, конечно, будет означать, что мышь превратится в указатель, но вы можете подавить это, добавив cursor: none;.

Ответ 5

Если он не работает, попробуйте

.spoiler span {
    visibility: hidden;
    line-height:20px;
}

.spoiler:hover span {
    visibility: visible;
    line-height:20px;
}

Ответ 6

Попробуйте

.spoiler{
    display:none;

}
.spoiler:hover {
    display:block;
}