移动端开发中,常常需要根据 UI 的设计稿做出适配移动端的网页,然而设计稿常常是以像素(px
)为单位的,于是需要利用 CSS 预编译器 Sass / Less 来进行转化。
一、Sass
Sass 拥有类似于传统编程语言的函数 @function,可以接收参数并返回值。
示例:
在父元素字体大小为 12px
的容器内绘制图形交互。
@function pxToEm ($px) { @return ($px/12) + em; } # Sass .box { width: pxToEm(36); } # CSS .box { width: 3em; }
二、Less
Less 的函数全是内置的并不能自定义,所以只能迁就一下使用混合(Mixins)来实现转换逻辑的复用。
示例:
将宽度为 375px
的 UI 设计稿转换成使用单位 vw
来适配移动端的网页。
.pxToVW (@px, @attr: width) { @vw: (@px / 375) * 100; @{attr}: ~"@{vw}vw"; } # Less .box { .pxToVW(75); .pxToVW(150, height); } # CSS .box { width: 20vw; height: 40vw; }