2014-02-06 69 views
19

CSS鈣我想用inheritcalc()這樣的:與繼承

#foo{ 
    animation-duration:10s; 
} 
#foo > .bar 
{ 
    animation-duration:calc(inherit + 2s); /* =12s */ 
} 

但它似乎沒有工作。

它是瀏覽器的錯誤或規格?

+0

不會這樣...... – DaniP

+1

似乎你運氣不好。我測試了你是否可以寫'calc(100%+ 2s)',但持續時間屬性不佔用百分比。 (只有'120%'本身不起作用。)對不起。好問題,但! –

+1

如果[Less](http://lesscss.org/)是一個選項,你可以執行'@duration:10s; #foo {animation-duration:@duration;} #foo> .bar {animation-duration:@duration + 2s; }'。當然,這不完全相同。還有[CSS變量](http://caniuse.com/#feat=css-variables),但這是現在的科幻小說。 – Kobi

回答

20

inherit關鍵字只能作爲屬性聲明中的值單獨存在。它不能與其他任何一起使用,因爲它本身就是一種價值。這意味着它不能用於calc()之類的功能。見CSS2.1css3-cascade

此外,calc()函數本身only takes literal numeric values such as numbers, dimensions and percentages

所以簡單來說,規範不允許以這種方式使用inherit

+4

這是正確的,而且100%不是一種選擇,這真是一種遺憾。 –