> sass:簡化印刷單元轉換
>本文探討了SASS如何簡化印刷單元轉換,從而消除了對手動計算的需求。 我們將構建一個SASS功能,該功能可以處理像素,EMS,百分比和點之間的轉換。
本文是最初於2015年3月5日發布的作品的更新版本。 從歷史上看,Web開發人員通常依靠固定的基於像素的佈局。 響應式設計已迎來了一種更靈活的方法,但是在印刷單元(像素,EMS,百分比)之間進行轉換仍然是一個普遍的挑戰。 這通常涉及乏味的手動轉換或諮詢轉換圖表。 > 本教程演示了一個SASS函數以自動化這些轉換,節省了時間並減少錯誤。
>先決條件:>必須在CSS(通常為16px)中定義默認字體大小。 本教程假定為16px默認值。 >該功能將支持像素(PX),EMS(EM),百分比(%)和點(PT)。
sass函數:
函數獲取三個參數:
:轉換的數值值。 convert
$value
$currentUnit
$convertUnit
@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); } } }
>擴展功能:
.foo { font-size: convert(16, px, em); // Returns 1em } .bar { font-size: convert(100, %, px); // Returns 16px }
支持REM單位。 無效輸入的錯誤處理。
>默認單元設置。
.scss
,.css
,px
>使用sass中的變量:em
rem
使用pt
。
SASS中的Mixins%
以上是用Sass轉換印刷單元的詳細內容。更多資訊請關注PHP中文網其他相關文章!