浅谈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模拟jq点击事件的实例代码
Jul 06 HTML / CSS
让IE6、IE7、IE8支持CSS3的脚本
Jul 20 HTML / CSS
css3实现背景颜色渐变让图片不再是唯一的实现方式
Dec 18 HTML / CSS
纯CSS实现颜色渐变效果(包含环形渐变、线性渐变、彩虹效果等)
May 07 HTML / CSS
轻松掌握CSS3中的字体大小单位rem的使用方法
May 24 HTML / CSS
使用CSS3制作一个简单的进度条(demo)
May 23 HTML / CSS
HTML5的革新 结构之美
Jun 20 HTML / CSS
HTML5制作酷炫音频播放器插件图文教程
Dec 30 HTML / CSS
使用spring mvc+localResizeIMG实现HTML5端图片压缩上传的功能
Dec 16 HTML / CSS
html5响应式开发自动计算fontSize的方法
Jan 13 HTML / CSS
CSS3 菱形拼图实现只旋转div 背景图片不旋转功能
Mar 30 HTML / CSS
CSS巧用渐变实现高级感背景光动画
Dec 06 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 $_SERVER windows系统与linux系统下的区别说明
2014/02/14 PHP
php无限遍历目录示例
2014/02/21 PHP
PHP获取文件扩展名的4种方法
2015/11/24 PHP
利用PHP自动生成印有用户信息的名片
2016/08/01 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
firefox中JS读取XML文件
2006/12/21 Javascript
符合W3C网页标准的iframe标签的使用方法
2007/07/19 Javascript
Extjs TimeField 显示正常时间格式的代码
2011/06/28 Javascript
js中eval详解
2012/03/30 Javascript
jQuery实现Twitter的自动文字补齐特效
2014/11/28 Javascript
JQuery中DOM事件合成用法实例分析
2015/06/13 Javascript
javascript实现跨域的方法汇总
2015/06/25 Javascript
jquery马赛克拼接翻转效果代码分享
2015/08/24 Javascript
JavaScript如何实现在文本框(密码框)输入提示语
2015/12/25 Javascript
jQuery计算文本框字数及限制文本框字数的方法
2016/03/01 Javascript
JS实现控制图片显示大小的方法【图片等比例缩放功能】
2017/02/18 Javascript
微信小程序使用checkbox显示多项选择框功能【附源码下载】
2017/12/11 Javascript
Vue实现带进度条的文件拖动上传功能
2018/02/23 Javascript
angular第三方包开发整理(小结)
2018/04/19 Javascript
最简单的JS实现json转csv的方法
2019/01/10 Javascript
javascript中的相等操作符(==与===区别)
2019/12/21 Javascript
js对象属性名驼峰式转下划线的实例代码
2020/09/17 Javascript
[01:16:13]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第一场 2月22日
2021/03/11 DOTA
Python使用metaclass实现Singleton模式的方法
2015/05/05 Python
举例讲解如何在Python编程中进行迭代和遍历
2016/01/19 Python
Python中字符串的格式化方法小结
2016/05/03 Python
python实现生成字符串大小写字母和数字的各种组合
2019/01/01 Python
Pandas读写CSV文件的方法示例
2019/03/27 Python
python使用socket 先读取长度,在读取报文内容示例
2019/09/26 Python
Python使用enumerate获取迭代元素下标
2020/02/03 Python
字符串str除首尾字符外的其他字符按升序排列
2013/03/08 面试题
竞聘医务工作人员的自我评价分享
2013/11/04 职场文书
ThinkPHP5和ThinkPHP6的区别
2021/03/31 PHP
SpringAop日志找不到方法的处理
2021/06/21 Java/Android
如何打开Win11系统注册表编辑器?Win11注册表编辑器打开修复方法
2022/04/05 数码科技
Python中生成随机数据安全性、多功能性、用途和速度方面进行比较
2022/04/14 Python