杂项函数(1)
从本章开始,我们开始学习 Less 内置函数有关的知识,Less 中内置的函数可以帮助我们解决很多计算或者判断的问题。
对于函数的学习我建议可以现大致浏览一下有哪些函数以及他们对应的功能和用途。
等到我们用到的时候可以回过头来翻阅函数的参数以及详细的用法,具体使用的场景可以帮助我们快速理解函数的用途。
杂项函数简介
杂项函数主要用于处理图片路径、颜色等途径。
1.1 color 函数
函数用途: 用于解析颜色,将颜色值的字符串处理为可以使用的颜色值。
参数: string
指定颜色值的字符串
返回值: color
颜色值
语法: color(param: string) => value
- 输入代码
.color {
color: color("#fff");
}
- 输出代码
.color {
color: #fff;
}
1.2 image-size 函数
函数用途: 用于获取图片文件的尺寸。
参数: string
获取尺寸的文件
返回值: 尺寸(图片长和宽)
语法: url(path:string) => value
- 输入代码
.img {
background:url("file.png");
background-repeat:no-repeat;
background-size: image-size("file.png");
}
- 输出代码
.img {
background:url("file.png");
background-repeat:no-repeat;
background-size: 10px 10px;
}
1.3 image-width 函数
函数用途: 获取图片文件宽度。
参数: string
获取尺寸的宽度
返回值: 宽度(单位为 px
)
语法: image-width(path: string) => value
- 输入代码
.img {
width: image-width("file.png");
}
- 输出代码
.img {
width: 10px;
}
1.4 image-height 函数
函数用途: 获取图片文件长度。
参数: string
获取尺寸的长度
返回值: 长度(单位为 px
)
语法: image-height(path: string) => value
- 输入代码
.img {
height: image-height("file.png");
}
- 输出代码
.img {
height: 10px;
}
1.5 convert 函数
函数用途: 单位转换
第一个参数包含一个带单位的数字,第二个参数包含一个单位。
如果两个单位兼容,则进行单位转换。如果它们不兼容,则第一个参数将按原样返回。
支持转换的单位如下:
- lengths(长度单位):
m
,cm
,mm
,in
,pt
,pc
- time(时间单位):
s
,ms
- angle(角度单位):
rad
,deg
,grad
,turn
参数:
number
: 含有单位的浮点数。identifier
,string
或者escaped value
: 单位 。
返回值: number
- 输入代码
.convert {
time: convert(9s, "ms");
lenght: convert(14cm, mm);
unkow: convert(8, mm); // 无法转换返回原值
}
- 输出代码
.convert {
time: 9000ms;
lenght: 140mm;
unkow: 8; // 无法转换返回原值
}
1.6 data-uri 函数
函数用途: 将内联资源转换为 base64 或者 text/html 格式 。
参数:
mimetype
: mime 类型字符串(可选)。url
: 内联文件的路径。
如果没有 mimetype
,data-uri
函数将从文件名后缀中猜测出来。 文本和svg文件编码为 utf-8,其他所有文件编码为 base64。
如果提供了mimetype,且 mimetype 参数以 base64 结尾,则该函数将使用 base64 转换图片。 例如,image / jpeg; base64
被编码为 base64
,而 text / html
被编码为 utf-8
。
如果ieCompat选项打开,资源过大,或者在浏览器中使用该功该函数则会回退为url()。
- 输入代码
.img {
// 1
background: data-uri('../data/image.jpg');
// 2
background: data-uri('image/jpeg;base64', '../data/image.jpg');
// 3
background: data-uri('image/svg+xml;charset=UTF-8', 'image.svg');
}
- 输出代码
.img {
// 1
background: url('data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg==');
// 2
background: url('data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg==');
// 3
background: url("data:image/svg+xml;charset=UTF-8,%3Csvg%3E%3Ccircle%20r%3D%229%22%2F%3E%3C%2Fsvg%3E");
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论