0Pricing
CSS Academy · บทเรียน

ตัวเลือก Extend และ Placeholder

แบ่งปันรูปแบบระหว่างตัวเลือกด้วย @extend และตัวเลือกตัวยึดตำแหน่งแบบไม่แสดงผล

ตัวเลือก Extend และ Placeholder เป็นบทเรียน CSS Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน CSS Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส CSS Academy มีบทเรียนทั้งหมด 4 บทเรียน

@extend ใน Sass

@extend ช่วยให้ตัวเลือกหนึ่งสืบทอดสไตล์ทั้งหมดจากอีกตัวเลือกหนึ่ง แทนที่จะทำซ้ำโค้ด การขยายจะสร้างชุดกฎที่ใช้ร่วมกันใน CSS หลังคอมไพล์

<div class="error">Error message</div>
  <div class="critical-error">Critical error message</div>

ตัวเลือกตัวยึด

ตัวเลือกตัวยึด (มี % เป็นคำนำหน้า) ใช้กำหนดบล็อกสไตล์ที่ไม่ถูกคอมไพล์โดยลำพัง แต่จะถูกคอมไพล์เมื่อมีการขยายเท่านั้น หากไม่มีสิ่งใดขยายตัวเลือกนี้ ก็จะไม่สร้าง CSS

<div class="product-card">Product card</div>
  <div class="profile-card">Profile card</div>

เหตุผลที่ควรใช้ตัวยึดแทนคลาส

การขยายคลาสจริงจะเพิ่มบริบทตัวเลือกทั้งหมดของคลาสนั้นลงในผลลัพธ์หลังคอมไพล์ ตัวยึดจึงสะอาดกว่า เพราะจะสร้างตัวเลือกที่จัดกลุ่มไว้เฉพาะสำหรับตัวเลือกที่ขยายเท่านั้น

ผลลัพธ์หลังคอมไพล์ของ @extend

เมื่อตัวเลือกหลายตัวขยายตัวยึดเดียวกัน Sass จะจัดกลุ่มตัวเลือกเหล่านั้นเป็นกฎที่คั่นด้วยจุลภาค:

<div class="product-card">Product card</div>
  <div class="profile-card">Profile card</div>

ข้อควรระวังของ @extend

@extend มีข้อจำกัดสำคัญ:

  • ไม่สามารถใช้ภายในคิวรีสื่อได้
  • อาจสร้างตัวเลือกที่จัดกลุ่มขนาดใหญ่และไม่คาดคิดเมื่อเกิดการขยายต่อกันหลายชั้น
  • ทำให้ติดตาม CSS หลังคอมไพล์กลับไปยังไฟล์ต้นฉบับได้ยากขึ้น

ข้อแลกเปลี่ยนระหว่าง @extend กับมิกซ์อิน

การเปรียบเทียบ:

  • @extend: CSS มีขนาดเล็กกว่าเนื่องจากใช้กฎร่วมกัน แต่มีสายโซ่ตัวเลือกที่ซับซ้อนและมีข้อจำกัดด้านคิวรีสื่อ
  • @mixin: ทำซ้ำการประกาศ แต่คาดเดาพฤติกรรมได้มากกว่าและใช้ภายในคิวรีสื่อได้

โดยทั่วไปมิกซ์อินเป็นตัวเลือกที่ดีกว่า

ในการใช้ Sass สมัยใหม่ โดยทั่วไปมักเลือกใช้มิกซ์อินมากกว่า @extend HTTP/2 และการบีบอัด gzip ทำให้การทำซ้ำการประกาศมีความสำคัญน้อยลง ขณะที่ความง่ายในการแก้จุดบกพร่องของมิกซ์อินมีประโยชน์มากกว่าความแตกต่างด้านขนาด CSS เพียงเล็กน้อย

กรณีที่เหมาะกับ @extend

@extend (พร้อมตัวยึด) เหมาะสมเมื่อ:

  • ตัวเลือกหลายตัวมีสถานะเชิงความหมายเดียวกันจริง ๆ เช่น สถานะข้อผิดพลาด
  • ไม่ได้อยู่ภายในคิวรีสื่อ
  • สไตล์พื้นฐานมีความคงที่และกำหนดไว้อย่างชัดเจน

ตัวยึดกับการกำหนดธีม

ตัวยึดเหมาะกับชุดยูทิลิตีลักษณะการรีเซ็ตที่หลายคอมโพเนนต์สืบทอดไปใช้:

<a href="#" class="skip-link">Skip to content</a>
  <span class="sr-label">Screen reader label</span>

ข้อควรพิจารณาเกี่ยวกับการเลิกใช้

คู่มือสไตล์และทีมงานบางแห่งห้ามใช้ @extend โดยสิ้นเชิง เนื่องจากความซับซ้อนและการทำให้ตัวเลือกมีขนาดใหญ่เกินไปซึ่งอาจเกิดขึ้นได้ ควรทำความเข้าใจข้อแลกเปลี่ยนและปฏิบัติตามแนวทางของทีม

ตรวจสอบความเข้าใจ

การขยายคลาสทั่วไปแตกต่างจากการขยายตัวเลือกตัวยึด (%) อย่างไร

สรุปทบทวน

@extend ช่วยให้ตัวเลือกสืบทอดสไตล์ของอีกตัวเลือกหนึ่ง และจัดกลุ่มตัวเลือกใน CSS หลังคอมไพล์ ตัวยึด (%name) จะไม่ถูกคอมไพล์จนกว่าจะมีการขยาย จึงสะอาดกว่าการขยายคลาสจริง ควรหลีกเลี่ยง @extend ภายในคิวรีสื่อ ใน Sass สมัยใหม่ โดยทั่วไปมักเลือกใช้มิกซ์อินมากกว่า @extend เพราะคาดเดาพฤติกรรมและแก้จุดบกพร่องได้ง่ายกว่า

คำถามที่พบบ่อย

บทเรียน “ตัวเลือก Extend และ Placeholder” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ตัวเลือก Extend และ Placeholder” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส CSS Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส CSS Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ตัวเลือก Extend และ Placeholder”

แบ่งปันรูปแบบระหว่างตัวเลือกด้วย @extend และตัวเลือกตัวยึดตำแหน่งแบบไม่แสดงผล คุณปฏิบัติ CSS Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน CSS Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน CSS Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “ตัวเลือก Extend และ Placeholder” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน CSS Academy นี้ได้ไหม

ได้ บทเรียน CSS Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การซ้อนตัวแปรและไฟล์ย่อย
  2. มิกซินและการรวม
  3. ตัวเลือก Extend และ Placeholder
  4. ฟังก์ชัน Sass และลำดับการควบคุม
← กลับไปที่ CSS Academy