有哪些专门针对Safari的纯CSS黑客?
我想知道是否有任何方法可以仅使用CSS为Safari编写CSS。我知道那里一定有东西,但是我还没有找到。
解决方案
回答
因此,等等,我们只想使用CSS编写Safari的CSS吗?我想你回答了自己的问题。 Webkit具有非常好的CSS支持。如果我们正在寻找仅适用于Webkit的样式,请尝试此处。
回答
我们必须使用JavaScript或者服务器来进行用户代理嗅探,才能将CSS专门发送到Safari / WebKit。
回答
我们可以在CSS中使用一些技巧来仅将Safari定位为目标,例如在分号后加上井号(#),这会导致Safari忽略它。例如
.blah { color: #fff; } .blah { color: #000;# }
在Safari中,颜色将为白色,在其他所有颜色中将为黑色。
但是,我们不应该使用黑客手段,因为它将来可能会导致浏览器出现问题,并且在较旧的浏览器中可能会产生不良影响。最安全的方法是使用服务器端语言(例如PHP)来检测浏览器,然后根据用户使用的浏览器提供不同的CSS文件,或者我们可以使用JavaScript进行操作,然后切换到一个不同的CSS文件。
服务器端语言是更好的选择,因为不是每个人都在浏览器中启用了JavaScript,这意味着他们看不到正确的样式。另外,JavaScript会增加页面正常显示之前需要加载的信息量的开销。
Safari使用WebKit,这在呈现CSS方面非常有用。我从来没有遇到过在Safari中无法正常运行的任何东西,但是在其他现代浏览器中却没有发现过(不包括IE,IE本身就是一个问题)。我建议确保CSS符合标准,因为问题可能出在CSS上,而不是Safari上。
回答
我认为这个问题是正确的。我同意其他答复,但这并不意味着这是一个可怕的问题。我只曾经使用过Safari CSS hack作为一种临时解决方案,后来又摆脱了它。我同意我们不必只针对Safari,但知道如何做到这一点也没有害处。
仅供参考,此hack仅针对Safari 3,也针对Opera 9.
@media screen and (-webkit-min-device-pixel-ratio:0) { /* Safari 3.0 and Opera 9 rules here */ }
回答
这确实取决于我们要执行的操作。我们是在尝试使用包含的某些CSS3功能在野生动物园中做一些特别的事情,还是在尝试使网站跨浏览器兼容?
如果我们要使网站跨浏览器兼容,建议我们使用正确的CSS编写网站,使其在safari / firefox / opera中看起来不错,然后使用IE中的条件CSS对IE进行更改。这应该(希望)为我们提供与未来浏览器的兼容性,这些浏览器将更好地遵循CSS规则,并提供跨浏览器的兼容性。这是一个例子。
通过使用条件样式表,我们可以避免一起被黑客攻击和目标浏览器。
如果我们想在野生动物园做一些特别的事情,请查看此内容。