2012-07-14 117 views
5

我假設這個問題的答案是不可能的,但是我總是希望有人知道一個聰明的解決方法。將額外的盒子陰影添加到現有陰影未知的元素

比方說,我有以下.left-inset,增加了1px的白色盒子陰影元素的左側給它一些深度類:

.left-inset { 
    box-shadow: inset 1px 0 0 rgba(255,255,255,.25); 
} 

的問題是,如果元素我加入這個類已經定義了一個盒子陰影,這個盒子陰影將覆蓋現有的陰影(或者這個陰影將不會被應用,這取決於級聯)。我想找到一種安全地添加這個類而不會發生衝突的方法。

我希望有這樣的事情下面的一些未來的瀏覽器支持:

.left-inset { 
    box-shadow: inherit, inherit, inherit, inset 1px 0 0 rgba(255,255,255,.25); 
} 

繼承是不是在這裏正確的字,因爲繼承意味着從父價值,但你的想法。

這種方法雖然不是全面的,但至少可以讓我知道我沒有與現有的盒子陰影衝突,除非他們定義了三個以上。在大多數情況下,這將足夠好。

有沒有人知道是否有這樣的事情是可能的,或者是否有建議的語法爲已定義的添加陰影?

回答

3

絕對定位的僞元素(與原來的具有容器位置集)似乎是唯一的解決辦法:

See the fiddle.(用於視覺我沒有不同大小/顏色)。

.test:before { 
    content: ''; 
    position: absolute; 
    top: 0; 
    right: 0; 
    bottom: 0; 
    left: 0; 
    box-shadow:3px 3px rgba(275,0,0,.25); 
} 
+0

不幸的是不適用'''