2008-09-16 36 views

回答

24

我認爲這個問題是有效的。我同意其他答覆,但這並不意味着這是一個可怕的問題。我只有一次使用Safari CSS黑客作爲臨時解決方案,後來擺脫它。我同意你不應該只針對Safari,但不知道如何去做。

僅供參考,本hack只針對Safari瀏覽器3,同時還針對Opera 9中

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

因此,等待,你想只使用CSS爲Safari編寫CSS?我想你回答了你自己的問題。 Webkit有非常好的CSS支持。如果您正在尋找僅webkit風格,請嘗試here

0

您必須使用JavaScript或您的服務器進行用戶代理嗅探,才能將CSS專門發送到Safari/WebKit。

5

在CSS中有一些黑客可以用來定位Safari,比如在分號後面加上散列/磅(#),這會導致Safari忽略它。例如

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

在Safari中,顏色將是白色,其他所有顏色都是黑色。

但是,您不應該使用黑客,因爲它可能會在未來導致瀏覽器出現問題,並且可能在舊版瀏覽器中產生不良影響。最安全的方法是使用服務器端語言(例如PHP)來檢測瀏覽器,然後根據用戶使用的瀏覽器提供不同的CSS文件,或者使用JavaScript執行相同操作,然後切換到一個不同的CSS文件。

服務器端語言是更好的選擇,因爲並非每個人都在瀏覽器中啓用了JavaScript,這意味着他們看不到正確的樣式。另外,JavaScript會在頁面正確顯示之前增加一些需要加載的信息量。

Safari使用WebKit,這非常適合渲染CSS。我從來沒有遇到過任何在Safari中不起作用的東西,但在其他現代瀏覽器中(不包括IE,它有它自己的問題)。我建議確保你的CSS是standards compliant,因爲問題可能在於CSS,而不是在Safari中。

+1

這不起作用。 – 2011-05-13 18:52:26

+4

這可能是因爲WebKit被固定以應付它。這個答案是從2008年,當上面的黑客工作在Safari。它現在不起作用的事實突出了我首先提出的關於不使用黑客的觀點,因爲他們不能保證在將來工作。 – 2011-05-13 19:23:08

+0

好點。 :-) – 2011-05-13 22:30:36

-1

這真的取決於你正在嘗試做的。你是否試圖在safari中使用一些CSS3功能做一些特別的事情,或者你是否試圖使網站跨瀏覽器兼容?

如果您試圖使網站跨瀏覽器兼容,我建議使用正確的CSS編寫網站在safari/firefox/opera中看起來不錯,然後使用條件CSS在IE中對IE進行更改。這應該(希望)能夠讓你兼容未來的瀏覽器,這些瀏覽器在遵循CSS規則方面越來越好,並提供了跨瀏覽器兼容性。 This is an example.

通過使用條件樣式表,您可以避免全部在一起和目標瀏覽器。

如果你正在尋找做一些特別的野生動物園檢查this

0

@media屏幕和(-webkit分鐘設備像素比:0){}

這似乎定位webkit的(包括Chrome)...或是這個真正Safari-只要?