什么特定于Safari的纯CSS黑客在那里?

时间:2008-09-16 04:43:04

标签: css safari

我想知道是否有任何方法只使用CSS专门为Safari编写CSS。我知道那里有一些东西,但我还没有找到它。

6 个答案:

答案 0 :(得分:24)

我认为这个问题是有效的。我同意其他答复,但这并不意味着这是一个可怕的问题。我只需要使用Safari CSS hack一次作为临时解决方案,然后摆脱它。我同意你不应该只针对Safari,但知道如何做就没有坏处。

仅供参考,这个黑客只针对Safari 3,也是目标Opera 9。

@media screen and (-webkit-min-device-pixel-ratio:0) {
   /* Safari 3.0 and Opera 9 rules here */
}

答案 1 :(得分:5)

您可以在CSS中使用一些黑客来仅定位Safari,例如在分号后放置哈希/磅(#),这会导致Safari忽略它。例如

.blah { color: #fff; }
.blah { color: #000;# }

在Safari中,颜色为白色,其他所有颜色均为黑色。

但是,您不应该使用hacks,因为它可能会在将来导致浏览器出现问题,并且在旧版浏览器中可能会产生不良影响。最安全的方法是使用服务器端语言(如PHP)检测浏览器,然后根据用户使用的浏览器提供不同的CSS文件,或者您可以使用JavaScript执行相同操作,并切换到一个不同的CSS文件。

服务器端语言是更好的选择,因为不是每个人都在浏览器中启用了JavaScript,这意味着他们看不到正确的样式。此外,JavaScript还会在正确显示页面之前为需要加载的信息量增加开销。

Safari使用WebKit,它非常适合渲染CSS。我从来没有遇到任何在Safari中不起作用的东西,但在其他现代浏览器中也是如此(不包括IE,它本身就有它自己的问题)。我建议你确保你的CSS是standards compliant,因为问题可能在于CSS,而不是在Safari中。

答案 2 :(得分:2)

等等,您是否只想使用CSS为Safari编写CSS?我想你回答了自己的问题。 Webkit具有非常好的CSS支持。如果您正在寻找仅限webkit的样式,请尝试here

答案 3 :(得分:0)

您必须使用JavaScript或服务器进行用户代理嗅探才能将CSS专门发送到Safari / WebKit。

答案 4 :(得分:0)

  

@media screen and(-webkit-min-device-pixel-ratio:0){}

这似乎针对的是webkit(包括Chrome)......还是仅限Safari?

答案 5 :(得分:-1)

这实际上取决于你想要做什么。您是否尝试使用包含的某些CSS3功能在safari中做一些特别的事情,或者您是否尝试使网站跨浏览器兼容?

如果您尝试使网站跨浏览器兼容,我建议使用正确的CSS编写网站以在safari / firefox / opera中看起来很好,然后使用条件CSS在IE中进行IE的更改。这应该(希望)为您提供兼容浏览器的未来,这些浏览器在遵循CSS规则方面变得越来越好,并提供跨浏览器兼容性。 This is an example.

通过使用条件样式表,您可以避免一起攻击和目标浏览器。

如果您想在safari中做一些特别的事情,请查看this