2009-05-14 6 views
2

Я создал класс CSS следующим образом:: hover CSS не работает?

div.ycontent div.ppclisting { background-color:#cccccc; } 
div.ycontent div.ppclisting:hover { background-color:#FFE5DF; } 

Я применил выше стиль в одной из моей странице, которая работает достаточно хорошо в Firefox, IE 7.0+ и в других новейших браузерах. Но когда я применяю тот же стиль на другой странице, то он не работает.

Может ли кто-нибудь сказать мне, что может быть причиной? почему он не работает на другой странице.

ответ

17

Я получил ответ, почему: hover не работал на другой странице. На самом деле на второй странице DOCTYPE тег не был добавлен в HTML страницы, как показано ниже,

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 

Раньше это было просто <html> тегов и из-за чего: парить на DIV не работает. После добавления тега doctype, как показано выше, он работает для меня.

Спасибо вам всем за помощь.

+1

Вы не упомянули, что используете: наведите указатель мыши на ** ДИВ **. Это могло бы помочь ... Однако я никогда не слышал о влиянии Doctype на этот. – Boldewyn

+3

Это также решило проблему для нас. Может ли кто-нибудь объяснить, почему это устраняет проблему? – Lightbeard

+0

Это ясно указано в учебнике W3Schools по ссылке ниже: http://www.w3schools.com/cssref/sel_hover.asp – Usha

0

Возможно, вложенные div на другой странице не имеют класса ycontent и/или сам элемент не является классом ppclising?

+0

Вы написали только то, что я набирал;) –

2

Если он работает в одном месте, но не в другом месте, то либо он не называется правильно, либо неправильно применяется.

Используйте Firebug, и посмотрите, какие свойства элемент, который должен иметь стили действительно. Затем проверьте имена классов для опечаток. Обычно это решает проблему, как описано.

+0

Я alreday проверил свойства с помощью панели инструментов WEB Developer (расширение firefox), и для первой страницы он отображает свойства .ycontent и .ycontent: hover, но для другой страницы он показывает только .ycontent класс не .ycontent: класс hover? – Prashant

2

Также в IE6 :hover работает только с a элементами. Запомни.

+0

Я знаю это, поэтому я упомянул IE7 + в своем вопросе. – Prashant

1

Я согласен с Брэндоном.

Я также добавить ..

Если удалить: раздел

div.ycontent 

из ваших линий, таким образом, что это выглядит следующим образом:

.ppclisting { 
background-color:#cccccc; 
} 

.ppclisting:hover { 
background-color:#FFE5DF; 
} 

Вы можете найти его будет работайте на другой странице.

Почему? Потому что вы определили эти стили как «классы». Классы намерены применять один и тот же стиль много раз.

Поместив перед ним «div.ycontent», вы по существу «ограничиваете»/не используете потенциал вытягивания классов CSS.

+1

Да, это был тот случай, который он должен был иметь прямо сейчас, на другой странице не было элемента div.ycontent V-UP – Dels

+0

На всех страницах есть div с классом .ycontent – Prashant

3

У меня была аналогичная проблема. Убедитесь, что вы правильно складываете! То есть, z-индекс.

0

У меня только что было положение: абсолютный на родителя сломал мой: hover, хотя это, похоже, не проблема как дедушка и бабушка. Я новичок во всем этом, поэтому я не знаю, нормально это или нет.

Поправка: Это оказалось проблемой z-index для меня. Мне нужно было поставить -1 на родителя, 0 на любых братьев и сестер с указанной позицией и 1 на divs, на которые я хотел навести наведение.