CSS中的框阴影

问题描述:

这不是一个问题,而只是一个咆哮。或者,也许一个问题...也许我只是不很了解箱阴影..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://*.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://*.com/questions/3218795/seeking-opinions-on-vendor-specific-prefixes/ 3218870#3218870 – 2010-09-16 11:38:16

因为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

不幸的是不可避免的,但是,这是方法标准制定:

  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

请注意as of 2010-09-14,-moz前缀已被删除的Mozilla平台版本。 Firefox 4将全面支持box-shadow!