2012-08-14 56 views
10

我試圖實現一些我甚至不太確定的可能性。calc()100%+ #px

我想在我的網站導航下放置一個特定的陰影PNG圖像。不過,我也想重複使用這個功能,我希望在網站上的任何對象,無論是圖像,div或按鈕。基本上對任何物體使用相同的陰影圖像。

使用css3 calc()函數我試圖做對象的高度@ 100%+ 25px(png的高度)。

我已經試過造型:

height: -webkit-calc(100% + 25px); 
height: -moz-calc(100% + 25px); 
height:  -o-calc(100% + 25px); 

但是從我可以在Firebug收集100%+ 25px的是那麼新的100%,這達到什麼。

我也試過:

height: -webkit-calc(100% + 25px); 
height: -moz-calc(100% + 25px); 
height:  -o-calc(100% + 25px); 
background-position: 0 -moz-calc(100% + 25px); 

但這裏沒有任何的喜悅。

如果我使用calc(3em + 25px);它沒有問題,但這不夠靈活,無法在任何對象上工作。

這甚至可能嗎?我甚至有道理嗎?!

+0

'-moz-box-shadow:0 0 30px 5px#999; -webkit-box-shadow:0 0 30px 5px#999;' 這樣不行嗎? – TheGeekZn 2012-08-14 10:44:26

+0

非常感謝,但是這是我用於曲面投影的特定圖像。我已經完成了box-shadow作爲一個CSS屬性,但它不是我所追求的效果。 – user1597713 2012-08-14 10:50:49

+0

如果我理解正確,請使用 'border-top-left-radius:20px 20px; border-right-right-radius:20px 20px;'創造彎曲的角落。影子會隨之而來。 – TheGeekZn 2012-08-14 10:53:47

回答

9

我不是100%確定的,但working draft描述了計算兩邊的操作員形成(單一類型的)子表達式。

由於您將相對值(%)與絕對值(px)組合在一起,因此可能無法完成計算。

更新:我做了一個小測試,似乎工作得很好。你確定你的選擇器和html中的位置是正確的嗎?檢查這個Fiddle

+1

完美!非常感謝Damien!通過將陰影div放置在導航元素內並給導航元素固定的高度,陰影在底部完美顯示。一些niggly邊緣衝突來解決,但這確實很好地工作!非常感謝! – user1597713 2012-08-14 12:54:49

+2

只是要指出。 %對px的測試是有缺陷的,因爲您首先使用的是100px高度,因爲100%+ 25%與100%+ 25px相同。正確的測試會使用100px以外的初始高度。也就是說,將小提琴的高度改爲300px確實證明測試確實按預期工作。 – TobyG 2015-07-30 15:26:07

+0

如上所述,這裏發生的問題是它會自動選擇第一個參數的測量值,所以在這種情況下它正在運行(100%+ 25px = 125px),這恰好與100%+ 25px的結果相同。 這只是巧合,他們到達相同的結果,在不同的高度,它不會工作 – MintWelsh 2017-06-13 09:41:35