2010-09-14 125 views
4

這不是一個問題,而只是一個咆哮。或者,也許一個問題...也許我只是不很瞭解箱陰影..CSS中的框陰影

爲了在不同的瀏覽器使用箱陰影在CSS3,這裏是我必須做的:

-webkit-box-shadow: 0px 0px 10px #676767; 
-moz-box-shadow: 0px 0px 10px #676767; 
box-shadow: 0px 0px 10px #676767; 

有沒有其他人爲Firefox,Opera和Safari/Chrome/Webkit工作而發現這種令人難以置信的愚蠢?它甚至不會在IE中工作!

有什麼我可以做的,以減少重複的CSS值?

感謝, badallen

+2

我同意它*的使用非常複雜,但仍然比沒有任何陰影更好。關於這個問題的良好討論[這裏](http://stackoverflow.com/questions/3218795/seeking-opinions-on-vendor-specific-prefixes) – 2010-09-14 21:31:19

+0

有很大的希望,他們會停止這樣做(&$%#* !@但是,唉,這不意味着。 – 2010-09-14 21:31:55

+0

@皮卡 - 哦,是的,我覺得Bobince釘在這裏:http://stackoverflow.com/questions/3218795/seeking-opinions-on-vendor-specific-prefixes/ 3218870#3218870 – 2010-09-16 11:38:16

回答

5

因爲box-shadow尚未正式指定,則需要供應商特定的前綴(例如:-moz-webkit-ms)。 IE不支持他們這段時間;如果您想使用IE,我建議使用CSS3 PIE。 PIE還增加了對其他CSS 3眼圖糖果的支持,如border-radius和漸變。

如果你想避免不必每次都寫同樣的代碼,我建議少用或SASS和它們混入:

http://lesscss.org/
http://sass-lang.com/

+1

CSSPIE的+1。很好的發現! – 2010-09-14 21:43:31

0

不幸的是不可避免的,但是,這是方法標準制定:

  1. 部分標準被指定。 (通常僅由一個瀏覽器製造商在內部)。
  2. 一個或多個公司在瀏覽器中實現該部分。
  3. 該標準根據迄今爲止實施的標準的實際使用情況進行修改。

關鍵部分是3 - 如果沒有使用供應商前綴,那麼第3部分不會發生,所以如果沒有世界上每個Web開發人員的巨大痛苦,就不能糾正錯誤。 (例如,參見IE瀏覽器框模型,Internet Explorer 6浮點實現的鼠標巢,以及幾乎整個Internet Explorer的歷史,直到版本8)。

在某些時候,瀏覽器要求供應商的前綴box-shadow將不受歡迎,您可以跳過-webkit-box-shadow-moz-box-shadow。在此之前,這只是您使用流血CSS功能付出的代價。

+1

Eric Meyer在A List Apart上有一篇有趣的文章,關於CSS,供應商前綴等的實現:http:// www。alistapart.com/articles/prefix-or-posthack/ – 2010-09-14 22:45:40

+0

@大衛:哦,是的,這是一個偉大的。我懷疑我的回答幾乎是對我的那篇文章的回憶。 – 2010-09-16 11:31:46