Этот вопрос касается различия в поведении CSS между страницей статического html, использующей тот же HTML и стили, что и страница, сгенерированная динамически с использованием PHP.
На статической странице эффект наведения применяется следующими стилями, определенными в отдельной таблице стилей:
div.selectable_class { background-color:white}
div.selectable_class:hover { background-color:blue }
Статический фрагмент HTML выглядит следующим образом:
<div class="selectable_class" onclick="event handler here">
<div class="ano_class">
<!-- Contents-->
</div>
</div>
Когда я загружаю статическую страницу, используя этот код, эффект наведения работает, как и ожидалось, и цвет меняется с белого на синий и обратно на белый.
Затем я использовал ту же таблицу стилей и сгенерировал HTML динамически, используя PHP, и заметил, что эффект наведения был потерян, но изменение цвета вызвано нажатием на div.
Чтобы подтвердить, что я генерировал динамический HTML правильно, я сделал View Source и скопировал сгенерированный HTML в отдельный файл, а затем загрузил его в.
Волшебно, эффект парения работал правильно в этой версии!
Я посмотрел в другом месте на этом сайте и увидел упоминание о типе документа, оказывающего влияние. В обоих случаях мой тип документа указан следующим образом:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
Для вашей информации я использую Safari версии 5.1.2.
Если бы кто-нибудь смог пролить свет на это поведение, я был бы очень признателен.