scss 单位转换Sass函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scss 单位转换Sass函数相关的知识,希望对你有一定的参考价值。
// ----
// Sass (v3.4.12)
// Compass (v1.0.3)
// ----
$baseSize: 16px;
$convertBase: $baseSize;
html {
font-size: percentage($baseSize / 16px);
}
@function convert($value, $convertUnit, $convertBase: $convertBase) {
$currentUnit: unit($value);
$strippedValue: $value / ($value * 0 + 1);
@if not unitless($convertBase) {
@if unit($convertBase) != px {
@error "Not supported unit '#{unit($convertBase)}' as convert base!";
}
$convertBase: $convertBase / ($convertBase * 0 + 1);
}
@if $currentUnit == px {
@if $convertUnit == 'em' {
@return 0em + ($strippedValue / $convertBase);
}
@else if $convertUnit == '%' {
@return percentage($strippedValue / $convertBase);
}
}
@else if $currentUnit == em {
@if $convertUnit == 'px' {
@return 0px + ($strippedValue * $convertBase);
}
@else if $convertUnit == '%' {
@return percentage($strippedValue);
}
}
@else if $currentUnit == '%' {
@if $convertUnit == 'px' {
@return 0em + ($strippedValue * $convertBase / 100);
}
@else if $convertUnit == 'em' {
@return 0em + ($strippedValue / 100);
}
}
// TODO: Check for pt unit convert
@else if $currentUnit == pt {
@if $convertUnit == 'px' {
@return 0px + ($strippedValue * 1.3333);
}
@else if $convertUnit == 'em' {
@return 0em + ($strippedValue / 12);
}
@else if $convertUnit == '%' {
@return percentage($strippedValue / 12)
}
}
@error "Can't convert '#{$value}' to unit '#{$convertUnit}'!";
}
.example1 {
font-size: convert(18px, '%'); /* converted from pixels */
}
.example2 {
font-size: convert(13pt, 'em'); /* converted from points */
}
.example3 {
font-size: convert(2.5em, 'px'); /* converted from ems */
}
.example4 {
font-size: convert(234%, 'px'); /* converted from percentage */
}
以上是关于scss 单位转换Sass函数的主要内容,如果未能解决你的问题,请参考以下文章
如何将scss转换成css文件
SASS 错误:不兼容的单位:“px”和“px*px”
scss SASS,SCSS,mixin:PX到EM的转换
sh 将.scss文件转换为.sass文件。
sh 将.scss文件转换为.sass文件。
scss URL编码颜色SASS功能/将颜色转换为十六进制SASS功能