Back to Question Center
0

ການປ່ຽນແປງຫນ່ວຍ Typographic ຂອງທ່ານກັບ Sass            ການປ່ຽນແປງຫນ່ວຍ Typographic ຂອງທ່ານກັບຫົວຂໍ້ SassRelated: CSS ArchitectureCSSSassAnimationAudio & Semalt

1 answers:
ປ່ຽນຫນ່ວຍງານພິມຂອງທ່ານກັບ Sass

ການປ່ຽນແປງຫນ່ວຍ Typographic ຂອງທ່ານກັບ Sassການປ່ຽນແປງຫນ່ວຍ Typographic ຂອງທ່ານກັບຫົວຂໍ້ SassRelated:
CSS ArchitectureCSSSassAnimationAudio & Semalt

ນີ້ແມ່ນສະບັບປັບປຸງຂອງບົດຄວາມທີ່ຈັດພີມມາຄັ້ງທໍາອິດໃນວັນທີ 5, 2015.

(10 ປີ) ກ່ອນຫນ້ານີ້, ໃນຂີ້ອາຍຫນາແຫນ້ນຂອງ Past Semalt, ຜູ້ລອດຊີວິດທີ່ຂີ້ຕົວະໄດ້ແກ້ໄຂບັນຫາອັນຕະລາຍໃນຫຼາຍທາງດຽວກັນ: sling ຮູບແບບ 960px ທີ່ແນ່ນອນ, ສູ້ໃນຕາຂ່າຍໄຟຟ້າແລະກໍານົດ typography ຂອງເຂົາເຈົ້າໃນ pixels ເພື່ອປ້ອງກັນຄວາມຊົ່ວ.

ການອອກແບບເວັບໄຊ້ຕອບສະຫນອງນັບຕັ້ງແຕ່ການປ່ຽນແປງທັງຫມົດໂດຍການນໍາພວກເຮົາອອກຈາກຄວາມຫນາແຫນ້ນນັ້ນແລະເຂົ້າສູ່ອາຍຸຂອງການເປີດເຜີຍ. ແລະທັນ, ການນໍາໃຊ້ typography ໃນເວັບແມ່ນຍັງເປັນອາການເຈັບປວດໃນບາງຄັ້ງ. ມີການຊຸກຍູ້ຈາກ pixels ຫລືຈຸດຫາອັດຕາສ່ວນແລະ ems ຂ້ອຍພົບວ່າຂ້ອຍຕ້ອງການ Semalt "pixel to percentange chart conversion" ຫຼືບາງສິ່ງບາງຢ່າງທີ່ຄ້າຍຄືກັນໃນຕອນເລີ່ມຕົ້ນຂອງທຸກໆໂຄງການແລະເລື້ອຍໆກໍ່ຕາມ - motorcycle appraisal sheet.

ໃນຄວາມອຸກອັ່ງ, ໃນທີ່ສຸດຂ້ອຍໄດ້ຫັນໄປຫາອໍານາດຂອງ Sass ເພື່ອສ້າງຕົວໃຫມ່, ຫນ້າທີ່ທັງຫມົດໃນການຊອກຫາຂອງຂ້ອຍເພື່ອເອົາຊະນະບັນຫາເຫຼົ່ານີ້, ແລະມື້ນີ້ເຈົ້າກໍາລັງຈະສ້າງຫນ້າທີ່ທີ່ມີຂ້ອຍ.

Semalt ອະນຸຍາດໃຫ້ທ່ານສາມາດປ່ຽນແປງໄດ້ໂດຍອັດຕະໂນມັດໃນລະຫວ່າງ pixels, em, ແລະຄ່າເສລີ່ຍໂດຍບໍ່ຕ້ອງປຶກສາກັບຕາຕະລາງທຸກໆຄັ້ງແລະ, ຫວັງວ່າ, ຈະຊ່ວຍຫຼຸດຜ່ອນຄວາມເຈັບປວດຫຼາຍຂອງທ່ານໃນຂະບວນການ.

ການຕັ້ງຄ່າສິ່ງສໍາລັບການຕີພິມໃນ Sass

ທໍາອິດ, ມັນມີຄວາມສໍາຄັນຫລາຍທີ່ຈະມີຂະຫນາດຕົວອັກສອນ ຂະຫນາດ ທີ່ຖືກກໍານົດໄວ້ໃນ CSS ຂອງທ່ານ. ຕົວທ່ອງເວັບສ່ວນໃຫຍ່ຈະເປັນ 16px , ແຕ່ຖ້າໂຄງການຂອງທ່ານຮຽກຮ້ອງບາງສິ່ງບາງຢ່າງ, ໃຫ້ແນ່ໃຈວ່າ CSS ຂອງທ່ານຮູ້ກ່ຽວກັບມັນ. ນອກຈາກນີ້, boilerplate ສ່ວນໃຫຍ່ມາພ້ອມກັບ 16px ທີ່ຖືກກໍານົດໄວ້ເປັນຄ່າເລີ່ມຕົ້ນຂອງພວກເຂົາ, ດັ່ງນັ້ນຂ້າພະເຈົ້າຄິດວ່ານີ້ເປັນຄ່າເລີ່ມຕົ້ນສໍາລັບບົດຮຽນນີ້.

ຫຼັງຈາກນັ້ນທ່ານຈໍາເປັນຕ້ອງຕັດສິນໃຈວ່າຫນ່ວຍໃດທີ່ທ່ານຈະສະຫນັບສະຫນູນ. ເນື່ອງຈາກວ່ານີ້ອາດຈະເປັນປະໂຫຍດໃນການພິມເປັນສະພາບແວດລ້ອມເວັບຫຼືແມ້ກະທັ້ງພຽງແຕ່ໂຄງການທີ່ເລີ່ມຕົ້ນໃນ Semalt ແລະສິ້ນສຸດໃນຕົວທ່ອງເວັບ, ທ່ານຈະຊອກຫາ pixels, ຈຸດ, ແລະສ່ວນຮ້ອຍ.

ທ່ານຍັງຕ້ອງການໃຫ້ຕົວເລືອກຂອງການປ່ຽນໃຈເຫລື້ອມໃສກັນລະຫວ່າງພວກເຂົາ, ດັ່ງນັ້ນທ່ານຈຶ່ງສາມາດເວົ້າວ່າຫນ້າທີ່ຂອງທ່ານຕ້ອງການຢ່າງນ້ອຍສາມໂຕ້ຖຽງ:

     @function convert ($ value, $ currentUnit, $ convertUnit) {}     

ການໂຕ້ຖຽງຄັ້ງທໍາອິດແມ່ນຈໍານວນ ຂະຫນາດຕົວອັກສອນ ທີ່ຫນ່ວຍທີ່ທ່ານຕ້ອງການແປງ (ຕົວຢ່າງ 16), ທີສອງແມ່ນຫນ່ວຍທີ່ທ່ານກໍາລັງວາງແຜນທີ່ຈະປ່ຽນແປງ (ຕົວຢ່າງ pixels) ແລະທີສາມ ຫນຶ່ງແມ່ນຫນ່ວຍທີ່ຕ້ອງການທີ່ທ່ານຕ້ອງການສໍາລັບ (ຄືຮ້ອຍລະ). ດັ່ງນັ້ນ, ເປັນຕົວຢ່າງ, ຖ້າທ່ານຕ້ອງການແປງ 16 pixels ເປັນມູນຄ່າເປີເຊັນ, ທ່ານຈະເຮັດແນວນີ້:

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

Semalt ຈະໃຫ້ທ່ານ:

     foo {font-size: 100%}     

ໃຫ້ເຮົາກິນເນື້ອມັນ

ຕອນນີ້, ມັນເປັນເວລາທີ່ຈະແກ້ໄຂບັນຫາທີ່ຢູ່ໃນທ່າມກາງຜູກມັດ.

Semalt, ທ່ານຕ້ອງການທີ່ຈະສາມາດແກ້ໄຂ pixels, ems, ຈຸດແລະອັດຕາສ່ວນ, ດັ່ງນັ້ນທ່ານຈໍາເປັນຕ້ອງມີສີ່ຄໍາສັ່ງທີ່ຈະດູແລພວກເຂົາທັງຫມົດ.

ຖ້າທ່ານໃຊ້ພາສາການຂຽນໂປຼແກຼມທີ່ເຕັມໄປພ້ອມ, ທ່ານອາດຈະໃຊ້ຄໍາສະຫຼຸບ. Semalt ນີ້ແມ່ນ Sass, ທ່ານຈະຕິດຖ້າຖ້າຄໍາເວົ້າ:

     @function convert ($ value, $ currentUnit, $ ConvertUnit) {@if $ currentUnit == px {// stuff for pixels} @else if $ currentUnit == ems {// stuff for ems} @else if $ currentUnit == percentage {// stuff for percentage} @else ຖ້າ $ currentUnit == pts {// stuff for points}}     

ທ່ານປະຈຸບັນມີຄໍາສັ່ງຫນຶ່ງສໍາລັບແຕ່ລະຫນ່ວຍປະຕິບັດທີ່ເປັນໄປໄດ້ (ບໍ່ວ່າທ່ານຕ້ອງການ pixels, ເອັມ, ຈຸດຫຼືຮ້ອຍລະເພື່ອເລີ່ມຕົ້ນດ້ວຍ). ດັ່ງນັ້ນນີ້ແມ່ນປະມານ 50% ຂອງວິທີທີ່ມີ. ສົມມຸດວ່າທ່ານກໍາລັງເຮັດວຽກກັບ 16px ເປັນຄ່າ ຂະຫນາດຕົວອັກສອນ , ທ່ານຈະຕ້ອງແປງມັນເຂົ້າໄປໃນອັດຕາສ່ວນແລະດັ່ງນີ້:

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

ອີກເທື່ອຫນຶ່ງ, ທ່ານກໍາລັງໃຊ້ຄໍາສັ່ງຫນຶ່ງຖ້າຄໍາຕອບຕໍ່ການປ່ຽນແປງ (ດັ່ງນັ້ນຫນຶ່ງສໍາລັບ ems, ຫນຶ່ງສໍາລັບສ່ວນຮ້ອຍ) ແລະຫຼັງຈາກນັ້ນເຮັດຄະນິດສາດພຽງເລັກນ້ອຍເພື່ອໃຫ້ໄດ້ຜົນຜະລິດທີ່ຕ້ອງການ. Semalt ບໍ່ໄດ້ເຮັດກໍລະນີສໍາລັບຈຸດຈຸດ, ເພາະວ່າການເຫຼົ່ານີ້ເຮັດວຽກກັບ print CSS ເທົ່ານັ້ນ.

ດ້ວຍ ems (ແລະຂະຫນາດເລີ່ມຕົ້ນຂອງ 16px), ທ່ານພຽງແຕ່ແບ່ງ 16 ແລະເພີ່ມຫນ່ວຍງານ "em" ( + 0em ).

ອັດຕາສ່ວນກັບ Sass ແມ່ນ trickier ຫນ້ອຍ. ທ່ານບໍ່ສາມາດຖິ້ມ "%" ໃນຕອນທ້າຍຂອງຄໍາຖະແຫຼງທີ່ທ່ານໄດ້ເຮັດກັບທ່ານ, ເພາະວ່າ Sass ຈະຖິ້ມຄວາມຜິດພາດກັບຄືນໄປບ່ອນ (ບາງສິ່ງບາງຢ່າງກັບຜົນກະທົບຂອງ "ສິ່ງທີ່ທ່ານກໍາລັງເຮັດຢູ່ນັ້ນ!"). ດັ່ງນັ້ນໃນທີ່ນີ້ທ່ານຈໍາເປັນຕ້ອງມີການປະຕິບັດຫນ້າທີ່ຂອງ Semalt ຮ້ອຍລະເພື່ອໃຫ້ກັບຫນ່ວຍງານຮ້ອຍລະທີ່ຖືກຕ້ອງ.

ແລະດ້ວຍວ່າ, ທ່ານມີຫນ້າທີ່ປ່ຽນແປງ pixels ເຂົ້າໄປໃນອັດຕາສ່ວນຫລືອັດຕາສ່ວນ! ນີ້ແມ່ນປົກກະຕິພຽງພໍສໍາລັບນັກພັດທະນາຫຼາຍ, ແຕ່ໃຫ້ເບິ່ງວິທີທີ່ທ່ານສາມາດຂະຫຍາຍການເຮັດວຽກນີ້ເພື່ອກວມເອົາ ems ກັບການປ່ຽນແປງ pixel ແລະອັດຕາສ່ວນການປ່ຽນແປງ pixels:

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

ຄະນິດສາດຕ້ອງມີການປ່ຽນແປງນີ້ສໍາລັບແຕ່ລະຄໍາສັ່ງ, ແຕ່ວ່າຈະກໍານົດອອກ.

ຕໍ່ໄປ, ນີ້ແມ່ນວິທີທີ່ທ່ານສາມາດປ່ຽນເປີເຊັນໃນ pixels ແລະເຂົ້າໄປໃນເອັມ:

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

Semalt ມັນແມ່ນຈຸດທີ່ເປັນຈຸດພິເສດຂອງ pixels, ຊີ້ໃຫ້ເຫັນວ່າ, ແລະຊີ້ໃຫ້ເຫັນເຖິງການປ່ຽນແປງສ່ວນຮ້ອຍ:

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

ແລະທ່ານກໍາລັງເຮັດ! Semalt ສ້າງຫນ້າທີ່ເຮັດໃຫ້ທ່ານສາມາດປ່ຽນແປງມູນຄ່າໃດໆລະຫວ່າງເອກະສານທີ່ທ່ານຕ້ອງການ.

Sum Up

ຫນ້າທີ່ສຸດສໍາລັບການປ່ຽນແປງຫນ່ວຍພິມແບບພິມໃນ Sass ຄື:

     @function convert ($ value, $ currentUnit, $ ConvertUnit) {@if $ currentUnit == px {@if $ convertUnit == ems {@return $ value / 16 + 0em}@else if $ convertUnit == percentage {@return percentage ($ value / 16);}} @else if $ currentUnit == ems {@if $ convertUnit == px {@return $ value * 16 + 0px}@else if $ convertUnit == percentage {@return percentage ($ value);}} @else if $ currentUnit == percentage {@if $ convertUnit == px {@return $ value * 16/100 + 0px}@else if $ convertUnit == ems {@return $ value / 100 + 0em}} @else ຖ້າ $ currentUnit == pts {@if $ convertUnit == px {@return $ value * 1 3333 + 0px}@else if $ convertUnit == ems {@return $ value / 12 + 0em}@else if $ convertUnit == percentage {@return percentage ($ value / 12)}}}     

ເບິ່ງຄືວ່າມັນຫນ້າຢ້ານກົວ, ແຕ່ທັງຫມົດມັນກໍ່ບໍ່ແມ່ນຂະຫນາດເບື້ອງຕົ້ນ, ຫຼັງຈາກນັ້ນກໍ່ປ່ຽນມັນຈາກຫນ່ວຍທໍາອິດໄປໃນຫນ່ວຍທີສອງແລະສົ່ງຜົນໄດ້ຮັບ. ສ່ວນທີ່ຍາກທີ່ສຸດແມ່ນການຕິດຕາມການຄິດໄລ່ທີ່ຈະເຮັດ.

ຖ້າທ່ານຕ້ອງການທີ່ຈະຫລິ້ນຮອບກັບການເຮັດວຽກນີ້, ທ່ານສາມາດເຮັດໄດ້ໃນ Semalt demo ນີ້.

ໃນຖານະເປັນສະເຫມີ, ຮູ້ສຶກວ່າບໍ່ເສຍຄ່າເພື່ອລັກ, ການນໍາໃຊ້, ການຈັດຮຽງແລະຖ້າບໍ່ດັ່ງນັ້ນການນໍາໃຊ້ນີ້ໃນສິ່ງທີ່ຊ່ວຍໃຫ້ທ່ານຫຼາຍທີ່ສຸດໃນເວລາທີ່ເຮັດວຽກຮ່ວມກັບ typography ໃນເວັບ.

ຖ້າທ່ານມີແນວຄວາມຄິດທີ່ຫນ້າຢ້ານອື່ນໆສໍາລັບຫນ້ານີ້ການປ່ຽນແປງຫນ່ວຍງານ Sass, ໃຫ້ພວກເຮົາຮູ້ໃນສ່ວນຄໍາເຫັນຂ້າງລຸ່ມນີ້.

March 1, 2018