BEM และ SASS การรวมกันที่ลงตัวของการเขียน CSS ยุคใหม่

Tuanrit Sahapaet
2 3 Perspective
Published in
2 min readFeb 25, 2020

--

การเขียน CSS ของแต่ละคนมีรูปแบบที่แตกต่างกันไป ตามความถนัด และการมองวัตถุของแต่ละบุคคล ยิ่งถ้าใน 1 โปรเจคมีคนทำหลายคนหรือนำโค้ดของคนอื่นมาแก้ไขต่อ อย่างเช่นซื้อมาจากที่อื่น หรือจะต้องแก้งาน MA เก่าๆ จะต้องใช้เทคนิคในการไล่หาพอสมควร ว่าอยู่ตรงไหน แก้ตรงจุดหรือเปล่า

วันนี้ก็เลยจะมาพูดถึง การเขียน CSS แบบ BEM (Block. Element. Modifier) ซึ่งเป็นหนึ่งในมาตรฐานที่นิยมใช้นั่นเอง

มันคืออะไร ? (What are they?)

Bem (Block. Element. Modifier) เป็นการแบ่งส่วนต่างๆบนเว็บไซต์ออกเป็น Block , Element และ Modifier

SASS เป็นภาษาที่เป็นส่วนต่อขยายจาก CSS ที่จะช่วยจัดการ การเขียน การเรียกใช้ ฟังค์ชั่นต่างๆ แบบมืออาชีพและมีเสถียรภาพ

Traditional example

ซึ่งจะสังเกตุได้จากการเขียน CSS แบบ BEM คือการใช้ (ขีดกลาง 2 ตัว) กับ __ (underscore 2 ตัว) ในการเขียน Selector ครับ

ถ้าดูแล้วยังงงๆ อยู่ การเขียนแบบ BEM คือการกำหนดขอบเขต และความแตกต่างแบ่งออกเป็น

Block Component ด้านนอกสุด

Element Object ทั่วไปที่อยู่ใน block

Modifier รูปต่าง ๆ ของ block

ก็ดูไม่ได้เข้าใจยากน่ะเนี่ย!!!!

ลองมาปรับให้เป็น แบบ SASS กันบ้าง มันจะออกมาเป็นยังไง

มันเข้าใจง่ายขึ้น สั้นขึ้น ไล่หาได้ง่ายขึ้น จาก format ที่ผสมผสานกันของ BEM และ SASS

เอาดอกไม้ไปเลย ต่อไปจะเขียนแบบนี้ละ 555 ..

Conclusion

การเขียน CSS แบบ SASS จะทำให้มองเป็นชั้น ไล่หาได้ง่าย หากว่ามีการตั้งชื่อ Class แบบ ฺBEM แล้ว จะทำให้เราเข้าใจว่า สิ่งไหนอยู่ภายใต้ตัวไหน จากชื่อ ยิ่งไล่ง่ายไปกันใหญ่

ลองเอาแนวคิดนี้ไปปรับใช้ในการเขียน CSS ดูครับ ส่วนตัวผมคิดว่ามันเจ๋งดี เข้าใจง่าย และเป็นระเบียบ แต่ก็ต้องการมีพูดคุยกับเพื่อนร่วมงานเพื่อให้เข้าใจการเขียน CSS ให้เป็นไปในแนวทางเดียวกันด้วย หากกลับมาแก้ภายหลังจะทำให้ Maintenance ได้ง่ายด้วยครับ

Reference

--

--

Tuanrit Sahapaet
2 3 Perspective

Senior Software Engineer ที่ Purple Ventures Co., Ltd. (Robinhood)