我想知道是否有任何方法只使用CSS专门为Safari编写CSS。我知道那里有一些东西,但我还没有找到它。
答案 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。