浅谈css3中calc在less编译时被计算的解决办法


Posted in HTML / CSS onDecember 04, 2017

对于前端er来说,Less或Sass已经是一项必备的基本技能,有了这个利器,可以省下前端开发者的很多编码时间,让你写CSS如行云流水一般,然后最近我在Less里加入calc时确发现了有点问题,我在Less中这么写:

div {width : calc(100% - 30px);}

结果Less把这个当成运算式去执行了,结果给我解析成这样:

div {width: calc(70%);}

当时我就郁闷了,怎么会产生这样的现象呢?后来各种查,是由于less的计算方式跟calc方法有重叠,两者在一起有冲突,于是,我在Less中把calc的写法改写成下面这样:

div {width : calc(~"100% - 30px");}

OK,解析结果正常: 

div {width: calc(100% - 30px);}

然而,把30px替换为一个变量,怎么写呢?

div {

@diff : 30px;

width : calc(~"100% - " + @diff);

}

这么写Webstorm没有报错,但grunt-less报错了:

C:\Users\zhong\WebstormProjects\test>grunt less

Running "less:development" (less) task

>> ParseError: Unrecognised input in style.less on line 4, column 2:

>> 3    @diff : 30px;

>> 4    width : calc(~"100% - " + @diff);

>> 5 }

Warning: Error compiling style.less Use --force to continue.

Aborted due to warnings.

于是这么写:

div {

@diff : 30px;

width : calc(~"100% - " @diff);

}

顺利编译过去,但Webstorm却老是提示语法错误,虽然也能编译但看着文件有一个错误提示心里老

感觉不爽,找半天也没发现Webstorm如何调试语法提示错误设置

于是,改成如下写法:

div {

@diff : 30px;

width : calc(~"100% - @{diff}");

}

这种写法又能编译,Webstorm里又不报错,所以我比较喜欢用这种写法,如此,便不会再有任何问题了。

PS:在这里提供一个工具网站,https://3water.com/tools/cssyasuo.shtml,能提供各种CSS以及其他语言的格式化,往往less编译后的css文件的格式并不是我们所需要的,现在可以试一下前面我说的网址里面的净化 ,哈哈,谁用谁知道!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
CSS3实现精美横向滚动菜单按钮
Apr 14 HTML / CSS
HTML5 CSS3给网站设计带来出色效果
Jul 16 HTML / CSS
CSS3 border-image详解、应用及jQuery插件
Aug 29 HTML / CSS
基于CSS3的CSS 多栏(Multi-column)实现瀑布流源码分享
Jun 11 HTML / CSS
CSS3提交意见输入框样式代码
Oct 30 HTML / CSS
使用HTML和CSS3绘制基本卡通图案的示例分享
Nov 06 HTML / CSS
详解CSS3中强大的filter(滤镜)属性
Jun 29 HTML / CSS
借助HTML5 Canvas来绘制三角形和矩形等多边形的方法
Mar 14 HTML / CSS
使用HTML5 Canvas API绘制弧线的教程
Mar 22 HTML / CSS
五分钟学会HTML5的WebSocket协议
Nov 22 HTML / CSS
HTML5 新增内容和 API详解
Nov 17 HTML / CSS
CSS精灵图的原理与使用方法介绍
Mar 17 HTML / CSS
浅谈css3新单位vw、vh、vmin、vmax的使用详解
Dec 01 #HTML / CSS
浅谈css3中的渐进增强和优雅降级
Dec 01 #HTML / CSS
CSS3 linear-gradient线性渐变生成加号和减号的方法
Nov 21 #HTML / CSS
详解CSS3 rem(设置字体大小) 教程
Nov 21 #HTML / CSS
纯css实现照片墙3D效果的示例代码
Nov 13 #HTML / CSS
用CSS3实现瀑布流布局的示例代码
Nov 10 #HTML / CSS
CSS3制作酷炫的条纹背景
Nov 09 #HTML / CSS
You might like
PHP的一个完整SMTP类(解决邮件服务器需要验证时的问题)
2006/10/09 PHP
PHP命名空间(Namespace)的使用详解
2013/05/04 PHP
PHP array_multisort() 函数的深入解析
2013/06/20 PHP
深入理解PHP内核(一)
2015/11/10 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
禁止F5等快捷键的JS代码
2007/03/06 Javascript
提高网站信任度的技巧
2008/10/17 Javascript
选择复选框按钮置灰否则按钮可用
2014/05/22 Javascript
javascript实现鼠标拖动改变层大小的方法
2015/04/30 Javascript
JS实现环形进度条(从0到100%)效果
2016/07/05 Javascript
js实现上传图片预览方法
2016/10/25 Javascript
详解nodejs 文本操作模块-fs模块(五)
2016/12/23 NodeJs
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
2016/12/23 Javascript
AngularJS 最常用的八种功能(基础知识)
2017/06/26 Javascript
Vue.js实现价格计算器功能
2020/03/30 Javascript
详解webpack的proxyTable无效的解决方案
2018/06/15 Javascript
node express使用HTML模板的方法示例
2019/08/22 Javascript
layer弹出层取消遮罩的方法
2019/09/25 Javascript
Vue项目中使用flow做类型检测的方法
2020/03/18 Javascript
echarts实现晶体球面投影的实例教程
2020/10/10 Javascript
利用JavaScript模拟京东按键输入功能
2020/12/01 Javascript
Python使用plotly绘制数据图表的方法
2017/07/18 Python
Python实现的破解字符串找茬游戏算法示例
2017/09/25 Python
Django实现一对多表模型的跨表查询方法
2018/12/18 Python
使用Python实现图像标记点的坐标输出功能
2019/08/14 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
2020/04/28 Python
tensorflow基于CNN实战mnist手写识别(小白必看)
2020/07/20 Python
Clarins娇韵诗美国官网:法国天然护肤品牌
2016/09/26 全球购物
Banana Republic英国官网:香蕉共和国,GAP集团旗下偏贵族风
2018/04/24 全球购物
美国领先的眼镜和太阳镜在线零售商:Glasses.com
2019/08/26 全球购物
上海天奕面试题笔试题
2015/04/19 面试题
Linux如何压缩可执行文件
2014/03/27 面试题
合同协议书格式
2014/04/18 职场文书
伦敦奥运会口号
2014/06/13 职场文书
公司踏青活动方案
2014/08/16 职场文书
会计工作总结范文2014
2014/12/23 职场文书