คำถามพูดได้ทั้งหมด
ตัวอย่างเช่นถ้าฉันใช้Twitter Bootstrapฉันสามารถกำหนดคลาสในสไตล์ชีต SASS ของตัวเองที่สืบทอดมาจากคลาส CSS ของ Bootstrap ได้หรือไม่ หรือการสืบทอดใน SASS ทำงานได้ภายในขอบเขตของไฟล์เดียวเท่านั้น?
คำถามพูดได้ทั้งหมด
ตัวอย่างเช่นถ้าฉันใช้Twitter Bootstrapฉันสามารถกำหนดคลาสในสไตล์ชีต SASS ของตัวเองที่สืบทอดมาจากคลาส CSS ของ Bootstrap ได้หรือไม่ หรือการสืบทอดใน SASS ทำงานได้ภายในขอบเขตของไฟล์เดียวเท่านั้น?
คำตอบ:
ใช่! มันเป็นไปได้.
หากคุณต้องการให้<button>
องค์ประกอบทั้งหมดสืบทอด.btn
คลาสจากปุ่มเริ่มต้นของ Twitter Bootstrap
ในstyles.scss
ไฟล์ของคุณคุณจะต้องนำเข้าก่อน_bootstrap.scss
:
@import "_bootstrap.scss";
จากนั้นด้านล่างการนำเข้า:
button { @extend .btn; }
@extend
ร่วมกับ bootstrap / framework ใด ๆ เนื่องจากอาจไม่ได้ผลตามที่คุณคาดหวัง มีบางสิ่งที่ควรระวังตามที่ระบุไว้ในโพสต์นี้: stackoverflow.com/questions/30744625/…
bootstrap.css
เข้าstyles.css
หรือเพียงแค่.btn
? ฉันหมายถึงในกลุ่มผลลัพธ์? หากนำเข้าทั้งหมดbootstrap.css
ก็จะเพิ่มขนาดstyles.css
โดยไม่จำเป็น
** ฉันอาจจะเข้าใจผิด แต่ถ้าฉันได้รับสิ่งที่คุณกำลังพยายามทำคุณจะใช้@extend .classname;
คำสั่งภายในองค์ประกอบที่คุณต้องการขยายได้หรือไม่? โดยปกติคุณควรแก้ไขโค้ดของคุณเองเพื่อรักษาความสามารถในการอัปเดตเท่านั้น
ตามความรู้ของฉันคุณต้องใช้@import
ไฟล์ที่มีคลาสที่คุณต้องการใช้ในไฟล์ SASS ของคุณเพื่อใช้ประโยชน์ในไฟล์นั้น อย่างไรก็ตามฉันไม่ใช่ผู้เชี่ยวชาญด้าน SASS / SCSS ดังนั้นอาจมีคนรู้วิธีอื่นในการใช้งานจากระยะไกลโดยที่ฉันไม่ทราบ
เช่นเดียวกับที่คำตอบที่ยอมรับได้แสดงให้เห็นว่าสิ่งนี้เป็นไปได้กับ @import อย่างไรก็ตาม @import ถูกเลิกใช้โดย sass
ทีม Sass ไม่สนับสนุนการใช้กฎ @import ต่อไป Sass จะค่อยๆเผยแพร่ออกไปในอีกไม่กี่ปีข้างหน้าและในที่สุดก็ลบมันออกจากภาษาทั้งหมด ต้องการกฎ @use แทน
กฎ @use เหมาะสำหรับใช้ตอนนี้มากกว่าเนื่องจากไม่ก่อให้เกิดมลพิษต่อขอบเขตของโมดูลการนำเข้า (ผู้ใช้) น่าเสียดายที่ในขณะที่เขียนกฎการใช้งานจะถูกนำมาใช้ใน Dart sass เท่านั้น