I noticed that my usage of the CSS3 calc()
function as the unit for width
is not working in the latest version of Chrome.
In the Chrome Deve
I struggled with calc
property a bit and only below approach worked.
-webkit-calc(~'100% - 40px'); // good: result 395px (in my application)
every above suggestions like:
-webkit-calc(100% - 40px); // bad: result 60%
ended up with wrong calculation like 60%.
Hope it helps somebody.
Use -webkit
prefix and spaces around the operator
width: -webkit-calc(100% - 88px);
width: -moz-calc(100% - 88px);
width: calc(100% - 88px);
The problem in the question was caused by the lack of space around the subtraction operator.
Note that the grammar requires spaces around binary ‘+’ and ‘-’ operators. The ‘*’ and ‘/’ operators do not require spaces.
https://www.w3.org/TR/css3-values/#calc-syntax
I speculate that this is to make clear the differentiation between operators and signed numbers.
Bad: calc(100%-88px)
Good: calc(100% - 88px)
How do I know it is not recognizing it? Because of the strikethrough and the yellow triangle icon next to the style rule in chrome dev tools.
A property that is struck in when viewed in Chrome's developer tools may be valid but overridden; however, a property struck through and with a warning triangle icon next to it is invalid.
Other Notes
calc()
for quite some time (confirmed on OSX and Windows).calc()
. As of late 2014, there is activity on implementing this, but the related bug is still open.calc()
with the -webkit
vendor prefix on OSX but not Windows.calc()
with no vendor prefix.calc()
with no vendor prefix.