2013-04-30 43 views
2

我覺得我的問題很簡單,但我無法找到一個簡單的辦法:亮度過濾器的CSS:Safari瀏覽器VS鉻

這裏是我的網站

http://www.paperkrop.com/contest

我使用亮度過濾器上透視的準確性。

當我在Chrome它看起來像這樣:

chrome pic

當我在Safari瀏覽器(使用-webkit-亮度樣鉻):

Safari Pic

讓我們不關注這裏的歪斜和縮放問題,而只關注亮度:

使用0.8的亮度,Chr青梅(和其他瀏覽器),把它作爲亮度

Safari瀏覽器將其作爲亮度

20%,80%有沒有簡單的解決方法是什麼?

在此先感謝!

編輯:有沒有辦法在css中區分safari和chrome?或只爲safari製作樣式表?這是領先嗎?

+0

記住,只要一個功能有供應商名稱(即'-webkit-'),這意味着它的實驗,並不能保證從一個瀏覽器中完美運行於使用相同的另一個(甚至瀏覽器渲染引擎)。 – Spudley 2013-04-30 15:47:02

+0

是的,我知道,該網站是不是真的爲舊的瀏覽器設計,我願意承擔風險:) – 2013-04-30 15:47:52

+0

我的'實驗'點是專門針對*當前*瀏覽器,需要一個前綴。顯然,不支持該功能的舊版本的瀏覽器根本無法做到這一點,但對於那些支持該功能的瀏覽器,如果它們需要前綴,則意味着該功能是實驗性的,可能不完整,可能會有變化,可能會有變化錯誤等等。如果你發現兩個瀏覽器之間使用相同的前綴CSS有不同的作用,那麼是的,這可能是其中一個錯誤,或者對規範的不同解釋。正確的行動方式是在瀏覽器的錯誤追蹤器中報告。 – Spudley 2013-04-30 15:53:41

回答

4

我一直在努力工作,並發現鉻< 26和safari < 6做了'舊模型'。舊模型0%是正常的未受影響的亮度,高達100%的任何東西都會使亮度比原來的亮度更亮,而負面的亮度會更暗。

新模型100%不受影響。

我用下面的jquery來測試哪個模型,而不是UA嗅探。

var oldBrightnessModel = $("<div/>").css("-webkit-filter","brightness(101%)").css("-webkit-filter")==""?true:false; 
+0

完美,好主意。 – 2013-09-04 12:34:14

1

您是否嘗試將webkit前綴版本設置爲百分比?例如。

-webkit-filter: brightness(90%); 
+0

是的,這就是我事先做的事,然後將它改爲十進制版本...... – 2013-04-30 15:33:26

+0

您運行的是哪個版本的Safari? – user2313440 2013-04-30 15:46:54

+0

我正在使用6.0.3(8536.28.10)(我認爲它是最新版本)...... Safari瀏覽器有沒有css入侵? – 2013-04-30 16:19:24

0

血淋淋的細節:根據W3C Filter Effects spec,鉻是正確的,並且Safari不正確。亮度過濾器應該是RGB空間中的縮放比例(R'= cR,G'= cG,B'= cB),但WebKit中的初始實現是平移(R'= R + c,G'= G + c,B'= B + c)。此後一直是fixed,但在Safari 6.0發佈後發生了變化。 Chrome由於發佈週期較短而選擇了它,但希望它也應該在下一個Safari發行版中修復。