【问题标题】:Can I code CSS specifically for Mac browsers?我可以专门为 Mac 浏览器编写 CSS 代码吗?
【发布时间】:2012-05-02 02:56:53
【问题描述】:

网站: http://clientfiles.priworks.com/lgmanagedportfolios/test/investment.html

我在这个网页上工作了一段时间,现在试图让第一个子菜单链接的左侧与第一个父/主菜单链接的左侧对齐。

我认为这样做没有合乎逻辑的方法,但经过多次捏造后,我已经接近正确了。对于所有 win 浏览器和所有 Mac 浏览器(带有一些条件 CSS),该位置是一致的,但对于 Win 和 Mac 浏览器却不是,例如,在 Mac Firefox 中,文本太靠前了,而在 Win Firefox 中,它是完美的。

问题:他们是专门为 Mac 浏览器调整填充的方法吗?

【问题讨论】:

  • 我不太确定您在说什么,但是无论操作系统如何,一个正确构建的站点在 Firefox 中应该看起来几乎相同。另外,fix this HTML error 看看你的问题是否在构建一堆条件 CSS 之前解决了。
  • 你真的应该切换到严格的文档类型,否则你会看到浏览器之间的差异
  • 不管怎样,该网站在 FF 和 Mac 上的 Safari 中看起来一模一样。
  • @F.Calderan,我不确定。我的网站跨浏览器看起来一样,我没有使用严格的doctype
  • 请发布完整的工作 URL(不要使用 URL 缩短器)或您的实际代码。现在您的页面出现 404 错误。就目前而言,这个问题将来对其他人没有帮助。

标签: html css cross-browser conditional


【解决方案1】:

我不相信你可以用纯 css 做到这一点,但你可以用 javascript 检测操作系统,然后用它来加载不同的 css。

http://www.quirksmode.org/js/detect.html

【讨论】:

  • 这似乎是我最好的选择,但我正在使用它并且 Mac 浏览器没有检测到它并使用 mac.css
  • 结构明智,您忘记了 if 语句和分号的括号 {} ;结束代码语句。
  • 你也想使用 navigator.platform ,而不是 userAgent
【解决方案2】:

您提到了文本大小/位置的不一致,您是否尝试过使用 Eric Meyer's CSS ResetNormalize.css 之类的东西?他们倾向于解决这样的问题。

顺便说一句,这些文本差异问题是由 Windows 和 Mac 使用不同字体作为默认字体引起的,因此使用 CSS 使其大小和字体系列相同可能正是您所需要的,而不是使用不同的样式表操作系统。

【讨论】:

    【解决方案3】:

    这是您在上面的其中一个 cmets 中尝试实现的正确代码

    if (navigator.platform === 'MacIntel' || navigator.platform === 'MacPPC') {
        $('head').append('<link rel="stylesheet" type="text/css" href="mac.css" />');
    }​ else {
        $('head').append('<link href="main.css" rel="stylesheet" type="text/css" />');
    } 
    

    你的 mac 没有检测到它的原因是 A. 你的语法错误和 B. 如果你在 head 部分留下&lt;link href="main.css" rel="stylesheet" type="text/css" /&gt;,那么查看你网站的源代码,那么 mac 浏览器仍然会读取那个 css 文件.在浏览器上使用我的代码只会在 mac 浏览该站点时获得 mac.css 文件,否则它会加载默认 css

    【讨论】:

      【解决方案4】:

      使用 CSS 重置表或规范化,它将通过剥离默认样式使所有浏览器显示 ABOUT 相同

      或者只是使用 * { padding: 0;} 将所有填充设置为 0,但是您必须为所有 css 设置填充

      【讨论】:

        【解决方案5】:

        更新:

        您可能希望使用 jQuery 将 CSS 动态应用到特定操作系统上的特定浏览器。您还需要脚本语言的帮助。

        使用 $_SERVER['HTTP_USER_AGENT'] 超级全局变量来检索浏览器和操作系统类型的信息。如果 OS = LION 并且浏览器是 Safari,则设置一个标志。

        仅当设置了该标志时,才在 jQuery 中使用此标志来应用 CSS。

        旧答案:

        这将是 Safari 和 Chrome 的 CSS,但也会影响 Windows 平台上的相同浏览器。

        Safari 和 google chrome 使用相同的引擎,称为 webkit。您可以使用

        定位这两个浏览器

        -webkit-属性

        check out this link

        这里有一个list of webkit属性,可以使用。

        一些例子

        -webkit-animation
        -webkit-animation-delay
        -webkit-animation-direction
        

        不过,它们大多是高级属性,而不是基本属性。

        【讨论】:

        • 这仅适用于特殊的 webkit 属性。它对 Firefox 没有影响,也不能应用于任何 CSS 属性。
        • 它将针对非 Mac 平台上的 Chrome/Safari/其他 webkit 浏览器,包括 Windows 和 Android。
        • 我有相同的css,它在chrome(windows)中的显示与在safari(mac)中不同。
        • 是的,它会影响所有的 webkit 浏览器。但据推测,它会在所有浏览器中解决相同的问题,而不仅仅是 safari。因为它们的行为本质上是相同的。
        • 引用: “因为它们本质上的行为方式相同。” 是的,它们应该,但那不是OP 正在报告。
        猜你喜欢
        • 1970-01-01
        • 2013-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-07
        • 2018-08-03
        相关资源
        最近更新 更多