我在外部托管的this rather old 2004 article中包含了使用CSS的图像映射(如A List Apart中的a Facebook iframe page中所述)。我正在使用带有图像的图像映射进行a:link / a:hover,并且CSS包含在外部样式表中。该页面在Safari和Chrome中正确显示,但在Mac OS X中正确显示not in Firefox 3.6

如果我切换回嵌入式样式,则Firefox中的displays properly页面。

这是内联应用样式的代码:

<style type="text/css">
 #home-page-nav {
    width: 512px; height: 139px;
    background: url(http://mysite.com/imagemap.jpg);
    margin: 10px auto; padding: 0;
    position: relative;}
  #home-page-nav li {
    margin: 0; padding: 0; list-style: none;
    position: absolute; top: 0;}
  #home-page-nav li, #home-page-nav a {
    height: 141px; display: block;}

  #blog-icon {left: 0; width: 127px;}
  #links-icon {left: 128px; width: 128px;}
  #twitter-icon {left: 256px; width: 128px;}
  #flickr-icon {left: 384px; width: 128px;}

  #blog-icon a:hover {
    background: transparent url(http://mysite.com/imagemap.jpg)
    0 -139px no-repeat;}
  #links-icon a:hover {
    background: transparent url(http://mysite.com/imagemap.jpg)
    -128px -139px no-repeat;}
  #twitter-icon a:hover {
    background: transparent url(http://mysite.com/imagemap.jpg)
    -256px -139px no-repeat;}
  #flickr-icon a:hover {
    background: transparent url(http://mysite.com/imagemap.jpg)
    -384px -139px no-repeat;}
</style>

<ul id="home-page-nav">
    <li id="blog-icon"><a href="http://donaldjenkins.net/"></a></li>
    <li id="links-icon"><a href="http://links.donaldjenkins.net/"></a></li>
    <li id="twitter-icon"><a href="http://twitter.com/donaldjenkins"></a></li>
    <li id="flickr-icon"><a href="http://flickr.com/photos/astorg"></a></li>
</ul>


关于解决此欢迎的任何建议。

更新:由于以下尼尔找到了解决方案。以防万一其他人遇到相同的问题,以下是解决方法。解决方案是更新托管CSS文件的Web服务器的配置。某些Apache和iPlanet Web服务器正在将具有.CSS的文件与错误的MIME类型(例如“文本/纯文本”或“应用程序/ x-pointplus”)相关联。在某些情况下,Netscape 7.x和Mozilla由于其MIME类型错误而忽略了CSS文件,并使用默认样式表,该样式表导致布局与Web开发人员期望的布局不同。有关更多详细信息,请参见Mozilla开发网络上的this page

解决此问题的最简单方法是在.htaccess文件中包含以下行:

AddType text/css .css

最佳答案

作为一项安全功能,外部样式表必须使用text/css MIME类型提供,否则Firefox将忽略它们。

07-24 17:59
查看更多