Back to Question Center
0

Ngonversi Unit Tipografi karo Sass            Ngonversi Unit Tipografi karo Topik SassRelated: CSS ArchitectureCSSSassAnimationAudio & Semalat

1 answers:
Ngonversi Unit Tipografi karo Sass

Ngonversi Unit Tipografi karo SassNgonversi Unit Tipografi karo Topik SassRelated:
CSS ArchitectureCSSSassAnimationAudio & Semalt

Iki minangka versi sing dianyari saka artikel sing pisanan diterbitake ing Semual 5, 2015.

Ing jaman biyen, ing peternakan Semalat sing kepaten, para petualang bisa ngatasi bebaya kanthi cara sing padha: nyelehake tata letak 960px sing tetep, perang ing kothak pesawat lan gunakake tipografi ing piksel kanggo njeblugake piala.

Desain web responsif wis wiwit ngganti kabeh sing nggawa kita metu saka kabut sing kandhel lan dadi umur pencerahan. Nanging, kanthi nggunakake tipografi ing web isih ana rasa nyusahake. Kanthi push saka piksel utawa poin menyang persentase lan ems, aku nemokake aku terus-terusan duwe Semalt "piksel kanggo persenange grafik konversi" utawa soko padha ing awal saben project, lan asring malah ing saindhenging.

Ing frustasi, aku pungkasanipun nguripake kekuwatan Sass kanggo ngembangake fungsi sing anyar, kabeh-saenga kanggo ngatasi masalah iki, lan saiki sampeyan bakal mbangun fungsi kasebut karo aku - como colocar gemelos para camisas polo.

Semalt ngijini sampeyan kanggo ngowahi kanthi bebas antarane piksel, em, lan nilai persentase tanpa kudu nggolek grafik saben-saben, lan muga-muga, ngilangi akeh ngelu ing proses sampeyan.

Nggawe Masalah Kanggo Unit Typographic ing Sass

Firstly, iku penting banget kanggo duwe standar font-size sing ditemtokake ing CSS sampeyan. Paling browser bakal asli 16px , nanging yen proyek sampeyan mbutuhake beda, priksa manawa CSS sampeyan ngerti babagan iku. Uga, akeh boilerplates teka karo 16px ditetepake minangka nilai default, mulane aku bakal nganggep iki minangka standar kanggo tutorial iki uga.

Sampeyan banjur kudu milih unit sing arep didhukung. Wiwit iki mbiyantu mbiyantu babagan lingkungan cetak, utawa malah dadi proyek sing diwiwiti ing Semalt lan pungkasan ing browser, sampeyan bakal ndeleng piksel, titik, ems lan persentase.

Sampeyan uga pengin menehi pilihan kanggo nindakake kanthi bebas ing antarane, supaya sampeyan bisa ngomong yen fungsi sampeyan butuh paling ora telung argumen:

     @functionfunction ($ value, $ currentUnit, $ convertUnit) {}     

Argumentasi pisanan yaiku nomer 29 ukuran font sing unit sampeyan pengin dikonversi (umpamane 16), sing liyane yaiku unit sing arep diowahi (umpamane piksel), lan katelu siji unit sing dikarepake sampeyan ngarahake (kaya persentase). Dadi, minangka conto, yen sampeyan pengin ngonversi 16 piksel dadi persentase, sampeyan bakal nindakake iki:

    . foo {font-size: convert (16, px, percent);}     

Semalt bakal menehi sampeyan:

    . foo {font-size: 100%;}     

Ayo Daging Sapi

Saiki, wektu kanggo ngatasi sing dicokot ing antarane braces.

Semalat, sampeyan pengin ngatasi piksel, ems, poin lan persentase, supaya sampeyan butuh papat statement kanggo ngurus kabeh.

Yen sampeyan nggunakake basa pamrograman lengkap, sampeyan bisa nggunakake statement switch. Semalat punika Sass, sampeyan bakal tetep karo yen statement:

     @functionfunction ($ value, $ currentUnit, $ convertUnit) {@if $ currentUnit == px {// barang kanggo piksel} @else if $ currentUnit == ems {// kanggo ems} @else if $ currentUnit == percent {// kuwi kanggo persentase} @else if $ currentUnit == pts {// barang kanggo poin}}     

Saiki sampeyan duwe statement yen kanggo saben unit input bisa (sampeyan pengin piksel, ems, poin utawa persentase kanggo miwiti). Dadi iki kira-kira 50% saka cara ana. Yen sampeyan nganggo 16px minangka standar ukuran font , sampeyan kudu ngowahi dadi ems lan persentase kaya mangkono:

     @if $ currentUnit == px {@if $ convertUnit == ems {@return $ value / 16 + 0em;}@else if $ convertUnit == percent {@return persentasi ($ value / 16);}}     

Maneh, sampeyan nggunakake salah siji yen statement saben konversi (dadi siji kanggo ems, siji kanggo persentase) banjur nindakake math sethitik kanggo njaluk output sing dikarepake. Semalt ora bakal nglakoni kasus kanggo nilai-nilai titik, amarga iki mung bisa nganggo print CSS anyway.

Kanthi ems (lan ukuran standar 16px), sampeyan mung dibagi kanthi 16 lan nambah unit "em" ( + 0em ).

Persentase karo Sass iku luwih trickier. Sampeyan ora bisa mung mbuwang "%" ing pungkasan statement kaya sampeyan nindakake karo ems, minangka Sass bakal mbuwang kesalahan bali bali (soko efek saka "apa sing dilakoni ana ing kono!"). Dadi ing kene sampeyan kudu nggabungake fungsi persentasi Semalt supaya bisa bali menyang unit persentase sing bener.

Lan kanthi mangkono, sampeyan duwe fungsi sing ngowahi piksel menyang em utawa persentase! Iki biasane cukup kanggo akeh pangembang, nanging ayo ndeleng carane sampeyan bisa ngluwihi fungsi iki kanggo nutupi ems dadi konversi piksel lan persentase nganti konversi piksel:

     @else yen $ currentUnit == ems {@if $ convertUnit == px {@return $ value * 16 + 0px;}@else if $ convertUnit == percent {@return persentasi ($ value);}}     

Math kudu ngganti kene kanggo saben statement, nanging bakal ngurutake ems.

Sabanjure, kene carane sampeyan bisa ngowahi persentase menyang piksel lan dadi ems:

     @else yen $ currentUnit == persen {@if $ convertUnit == px {@return $ value * 16/100 + 0px;}@else if $ convertUnit == ems {@return $ value / 100 + 0em;}}     

Semit iku siji-sijine poin menyang piksel, nuduhake menyang ems, lan nilai menyang persentasi mata uang:

     @else yen $ currentUnit == pts {@if $ convertUnit == px {@return $ value * 1. 3333 + 0px;}@else if $ convertUnit == ems {@return $ value / 12 + 0em;}@else if $ convertUnit == percent {@return persentasi ($ value / 12)}}     

Sampeyan wis rampung! Semalt nggawe fungsi sing ngijini sampeyan kanggo ngowahi frekuensi ing sembarang unit sing dikarepake.

Kanggo Sum Up

Fungsi pungkasan kanggo konversi unit basa ing Sass katon kaya:

     @functionfunction ($ value, $ currentUnit, $ convertUnit) {@if $ currentUnit == px {@if $ convertUnit == ems {@return $ value / 16 + 0em;}@else if $ convertUnit == percent {@return persentasi ($ value / 16);}} @else if $ currentUnit == ems {@if $ convertUnit == px {@return $ value * 16 + 0px;}@else if $ convertUnit == percent {@return persentasi ($ value);}} @else if $ currentUnit == percent {@if $ convertUnit == px {@return $ value * 16/100 + 0px;}@else if $ convertUnit == ems {@return $ value / 100 + 0em;}} @else if $ currentUnit == pts {@if $ convertUnit == px {@return $ value * 1. 3333 + 0px;}@else if $ convertUnit == ems {@return $ value / 12 + 0em;}@else if $ convertUnit == percent {@return persentasi ($ value / 12)}}}     

Iku angel banget, nanging kabeh iku pancene njupuk ukuran awal, banjur pindhah saka unit pisanan menyang unit kaping loro, lan bali asil. Bagian sing angel mung nglacak apa wae sing kudu dilakoni.

Yen sampeyan pengin muter karo fungsi iki, sampeyan bisa nindakake ing demo Semalt iki.

Kaya tansah, nyolong gratis, nyolong, nyusun ulang, lan gunakake iki apa wae sing mbantu paling apik nalika nggarap tipografi ing web.

Yen sampeyan duwe gagasan apik tenan kanggo fungsi konversi Unit Sass, ayo ngerti ing bagean komentar ing ngisor iki.

March 1, 2018