> sass:简化印刷单元转换
>本文探讨了SASS如何简化印刷单元转换,从而消除了对手动计算的需求。 我们将构建一个SASS功能,该功能可以处理像素,EMS,百分比和点之间的转换。
本文是最初于2015年3月5日发布的作品的更新版本。 从历史上看,Web开发人员通常依靠固定的基于像素的布局。 响应式设计已迎来了一种更灵活的方法,但是在印刷单元(像素,EMS,百分比)之间进行转换仍然是一个普遍的挑战。 这通常涉及乏味的手动转换或咨询转换图表。> 本教程演示了一个SASS函数以自动化这些转换,节省了时间并减少错误。
>先决条件:>必须在CSS(通常为16px)中定义默认字体大小。 本教程假定为16px默认值。 >该功能将支持像素(PX),EMS(EM),百分比(%)和点(PT)。
sass函数:
函数获取三个参数:
:转换的数值值。convert
$value
$currentUnit
$convertUnit
<code class="language-sass">@function convert($value, $currentUnit, $convertUnit) { @if $currentUnit == px { @if $convertUnit == em { @return $value / 16 + 0em; } @else if $convertUnit == % { @return percentage($value / 16); } @else if $convertUnit == pt { @return $value * 1.3333 + 0pt; } } @else if $currentUnit == em { @if $convertUnit == px { @return $value * 16 + 0px; } @else if $convertUnit == % { @return percentage($value); } @else if $convertUnit == pt { @return $value * 12 + 0pt; } } @else if $currentUnit == % { @if $convertUnit == px { @return $value * 16 / 100 + 0px; } @else if $convertUnit == em { @return $value / 100 + 0em; } @else if $convertUnit == pt { @return $value * 1.3333 * 16 / 100 + 0pt; } } @else if $currentUnit == pt { @if $convertUnit == px { @return $value * 1.3333 + 0px; } @else if $convertUnit == em { @return $value / 12 + 0em; } @else if $convertUnit == % { @return percentage($value / 12); } } }</code>
>扩展功能:
<code class="language-sass">.foo { font-size: convert(16, px, em); // Returns 1em } .bar { font-size: convert(100, %, px); // Returns 16px }</code>
支持REM单位。 无效输入的错误处理。
>默认单元设置。
.scss
,.css
,px
>使用sass中的变量:em
rem
使用pt
。
SASS中的Mixins%
以上是用Sass转换印刷单元的详细内容。更多信息请关注PHP中文网其他相关文章!