calc() の仕様
さらに、空白文字は+と-演算子の両側に要求される。(*および/演算子は周りの空白なしで使用することができる。)
仕様では上記のようにあるので -
の両端に空白文字がなければ文法エラーとなるのが正しいようです(/
の両端に空白は不要です)。
W3C CSS 検証サービス
ただし、先述の文法規則を守ったとしても「W3C CSS 検証サービス」では文法解析エラーが発生します。
CSS
1span {
2 width: calc(25% - 6px);
3}
仕様にあるCSSをコピー&ペーストして [検証する] をクリックしても同様のエラーが発生するので「W3C CSS 検証サービス」が calc()
に対応してない可能性が高いと考えます。
CSS
1section {
2 float: left;
3 margin: 1em; border: solid 1px;
4 width: calc(100%/3 - 2*1em - 2*1px);
5}
Chrome Developer Tools
質問の追記より引用。
Chromeのデベロッパーコンソールで確認するとエラー警告が表示されます
設定の問題かもしれませんが、私の環境では Google Chrome v56.0.2924.87 においてコンソールに警告が表示されませんでした。
ただし、[Elements] -> [Styles] タブにおいては下記エラーを確認できました。
CSS
1img{width:calc((100%-15px)/4)px;} /* invalid property value */
2img{width:calc((100%-15px)/4);} /* エラーは発生せず */
もし、コンソールに上記エラーを出力できるのだとすれば、同様の結果になると思われます。
(注意)
Google Chrome のコンソールは[更新] ボタンを押してページを更新しても更新前のコンソールログがそのまま残る仕様です。
エラーが出力された状態でCSSを修正し、ページを更新した場合、修正前のエラーログが変わらずに表示され、修正後のエラーが解消された状態になります。
つまり、修正前のエラーが一つだけ表示されるはずです。
この仕様は混乱を招くのでコンソールを一度クリアしてからページを更新すると良いと思います。
Re: yamatonchu さん