div悬停样式在动态和静态HTML中的不同行为



这个问题涉及使用相同html的静态html页面和使用PHP动态生成的页面的样式之间的CSS行为差异。

在静态页面中,悬停效果由单独样式表中定义的以下样式应用:

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>

当我使用此代码加载静态页面时,悬停效果如预期一样工作,颜色从白色变为蓝色,再变回白色。

然后,我使用了相同的样式表,并使用PHP动态生成HTML,注意到悬停效果已经消失,但颜色的变化是通过点击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版本。

如果有人能揭露这种行为,我将不胜感激。

PHP在服务器上运行,对web浏览器如何显示生成的HTML、CSS没有任何了解或影响。如果有差异,那就意味着用PHP生成的HTML/CSS与静态页面中包含的HTML/CSS不同。

这不一定是你问题的答案,但请记住,早期版本的IE并不理解:将鼠标悬停在不是链接的元素上。我不确定在哪一个版本中,这一点从我的脑海中消失了。

如果你正在寻找一个跨浏览器的解决方案,那么,你可能不得不求助于一个javascript函数,比如jQuery的.hooper()。这也可能是解决当前问题的一种方法。

相关内容

  • 没有找到相关文章

最新更新