一、問題描述
在css代碼中利用calc設置left值,但是使用gulp-minify-css壓縮之後,卻發現calc設置這一行在壓縮之後的css中沒有。如下:
壓縮之前:
aside { position: fixed; top:50px; left:0; width: calc((100% - 1400px)/2); padding: 0 20px; box-sizing: border-box; }壓縮之後的代碼:(方便展示,我加入了換行)
aside { position: fixed; top:50px; left:0; padding: 0 20px; box-sizing: border-box; }
二、問題解決
後面在嘗試了許多次和查找calc的用法之後才發現,問題出現在我在使用calc時,忘記了在除號(/)兩邊加上空格。在MDN上是介紹calc的用法時(https://developer.mozilla.org/zh-CN/docs/Web/CSS/calc),強調了以下幾點:
但是使用gulp的時候沒有在-或者*兩端加上空格,calc所在的行就會被刪除,導致錯誤。具體的原因也不清楚。
MDN上是解釋說需要再使用+和-的時候兩邊要加上空格,這個檢測需要編輯器也會檢測,/和*不需要,所以編輯器也不會檢測。我在chrome裏面試了,不在/或者*兩端加上空格,瀏覽器也是可以正確解析calc的。所以,解決的辦法就是即使不在/和*兩端加上空格不會影響瀏覽器的解析,但是爲了避免出現使用gulp-minify的情況,最好在calc中使用/和*時,也在兩邊加上空格。