【问题标题】:firefox (Gecko) conditional style sheetfirefox (Gecko) 条件样式表
【发布时间】:2010-11-09 23:07:18
【问题描述】:

今天我正在尝试优化我的网站,以便在 Firefox 中获得更好的渲染效果! 我的问题是 text-shadow 和 font-weight 属性...我只想为 firefox 设置自定义值(我的网站只兼容 mac,所以我不需要 IE 兼容性)但我不会单独使用只有这两个属性的样式表!!! 有什么办法吗?或者我必须使用 php 脚本来过滤用户代理并为 firefox 加载自定义样式表?

提前致谢!

【问题讨论】:

    标签: css firefox stylesheet


    【解决方案1】:

    条件仅适用于 IE,抱歉。也许其中一些功能可以帮助您,它们仅适用于壁虎浏览器:Mozilla css extensions

    【讨论】:

    • 感谢您的回答...是的,我知道这些扩展,但我无法覆盖 text-shadow 和 font-weight 的值!!!
    【解决方案2】:

    您可以使用CSS Browser Selector

    【讨论】:

      【解决方案3】:

      您似乎只想支持支持text-shadow 的浏览器,那么为什么只针对 Firefox?您的方法应该是只为那些支持text-shadow 的浏览器更改font-weight。但这说起来容易做起来难。

      浏览器嗅探器无法工作,除非它们能够区分 Firefox 3.5 和更早版本。 KahWee 链接的那个不能实现这一点,但我不建议浏览器嗅探——这不是最佳实践。

      我建议将 font-weight 设置为与 text-shadow 一起使用的任何内容,然后包含一个 IE 条件以将大部分访问者的浏览器重置为原始的、非阴影font-weight

      例子:

      <style type="text/css" media="screen">
          .some-text {
              color: #fff;
              font-weight: bold;
              text-shadow: #000 0.1em 0.1em 0.2em;
          }
      </style>
      
      <!--[if IE]>
      <style type="text/css" media="screen">
          .some-text {
               font-weight: normal;
               text-shadow: none; /* Does nothing now, but explicitly define NONE
                  for future IE versions as that is what is intended */
          }
      </style>
      <![endif]-->
      

      这样,您将在这些浏览器中使用正确的font-weight 实现text-shadow

      • 火狐3.5+
      • Opera 9.5+
      • Safari 1.1+(自 2003 年起!)
      • Chrome 2.0+
      • Konqueror 3.4+

      如果你想在 IE 中投影,你可以使用 filter 表达式和 DropShadow(),但我个人不建议使用专有的 CSS 扩展。

      那么,对于 Firefox 3.0 及更低版本、Opera 9.2x 及更低版本等较旧的非 IE 浏览器,您唯一真正的“损失”将是不正确的 font-weight

      那么,为非常有限的旧浏览器子集更改 font-weight 真的值得 JavaScript 或 PHP 浏览器嗅探吗?

      如果答案仍然是肯定的,还有像this one 这样的PHP 浏览器嗅探器。

      【讨论】:

      • 请注意,PHP 嗅探器需要 Firefox 3.5(以及许多其他更新的浏览器)的新条目,并且它还广泛使用 eregi(),现在如果您使用的是 PHP 5.3.0,则不推荐使用。
      • 行吗?我说不能修吗?这意味着如果您在脚本中添加条目,您不妨将所有内容从eregi() 移开。但是感谢您的吹毛求疵……
      【解决方案4】:

      好的,有点晚了,但对于像我这样不高兴听到上面的答案的人来说,有办法做到这一点。

      <html>
          <head>
              <style type="text/css">
                  #myDiv
                  {
                      background-color:blue;
                      width: 100px;
                      height: 100px;
                  }
      
                  @-moz-document url-prefix()
                  {
                      #myDiv
                      {
                          background-color: red;
                      }
                  }
              </style>
          </head>
          <body>
              <div id="myDiv"></div>
          </body>
      </html>
      

      【讨论】:

      • 你..是..天才。非常感谢你。
      • 太棒了 - 正是我正在寻找的东西,可以修复 Chrome 和 Firefox 之间垂直方向相差 1 个像素的问题。
      猜你喜欢
      • 2015-05-10
      • 2013-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多