浅谈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 media queries + jQuery实现响应式导航
Sep 30 HTML / CSS
css背景图片的背景裁切、背景透明度、背景变换等效果运用
Dec 24 HTML / CSS
深入CSS3 动画效果的总结详解
May 09 HTML / CSS
html5声频audio和视频video等新特性详细说明
Dec 26 HTML / CSS
html5指南-1.html5全局属性(html5 global attributes)深入理解
Jan 07 HTML / CSS
HTML5实现简单图片上传所遇到的问题及解决办法
Jan 20 HTML / CSS
使用PDF.JS插件在HTML中预览PDF文件的方法
Aug 29 HTML / CSS
canvas学习总结三之绘制路径-线段
Jan 31 HTML / CSS
html+css 实现简易导航栏功能
Apr 07 HTML / CSS
CSS3 制作的书本翻页特效
Apr 13 HTML / CSS
html5表单的required属性使用
Jul 07 HTML / CSS
css弧边选项卡的项目实践
May 07 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创建sprite
2014/02/11 PHP
如何使用PHP Embed SAPI实现Opcodes查看器
2015/11/10 PHP
PHP记录和读取JSON格式日志文件
2016/07/07 PHP
phpStudy2016 配置多个域名期间遇到的问题小结
2017/10/19 PHP
PHP实现唤起微信支付功能
2019/02/18 PHP
JavaScript中清空数组的三种方法分享
2011/04/07 Javascript
input点击后placeholder中的提示消息消失
2016/01/15 Javascript
jQuery+css实现炫目的动态块漂移效果
2016/01/28 Javascript
巧方法 JavaScript获取超链接的绝对URL地址
2016/06/14 Javascript
angularjs实现文字上下无缝滚动特效代码
2016/09/04 Javascript
原生js实现键盘控制div移动且解决停顿问题
2016/12/05 Javascript
详解Weex基于Vue2.0开发模板搭建
2017/03/20 Javascript
vue bootstrap小例子一枚
2017/06/09 Javascript
Vue中mintui的field实现blur和focus事件的方法
2018/08/25 Javascript
浅谈vuex actions和mutation的异曲同工
2018/12/13 Javascript
详解JavaScript栈内存与堆内存
2019/04/04 Javascript
微信小程序常用赋值方法小结
2019/04/30 Javascript
TypeScript类型声明书写详解
2019/08/28 Javascript
vue Tab切换以及缓存页面处理的几种方式
2019/11/05 Javascript
用Nodejs实现在终端中炒股的实现
2020/10/18 NodeJs
python中lambda函数 list comprehension 和 zip函数使用指南
2014/09/28 Python
Numpy 改变数组维度的几种方法小结
2018/08/02 Python
python多线程同步之文件读写控制
2021/02/25 Python
Python netmiko模块的使用
2020/02/14 Python
如何通过Python实现RabbitMQ延迟队列
2020/11/28 Python
HTML5 图片悬停放大的实现代码示例
2019/12/04 HTML / CSS
boostrap modal 闪现问题的解决方法
2020/09/01 HTML / CSS
党员年终民主评议的自我评价
2013/11/05 职场文书
大学军训自我鉴定
2013/12/15 职场文书
学生自我鉴定
2013/12/18 职场文书
出国留学计划书
2014/04/27 职场文书
领导班子对照检查材料
2014/09/22 职场文书
入党政审材料范文
2014/12/24 职场文书
Java内存模型之happens-before概念详解
2021/06/13 Java/Android
Python游戏开发实例之graphics实现AI五子棋
2021/11/01 Python
使用CSS自定义属性实现骨架屏效果
2022/06/21 HTML / CSS