CSS คือ ตอนที่ 5 : เลย์เอาต์ (Layout)

  1. คุณสมบัติการแสดง (Display Property)
  2. ตำแหน่ง
  3. ลอยตัว (Floats) และ Clearfix
  4. เฟล็กซ์บ็อกซ์ (Flexbox)
  5. กริด (Grid) CSS
  6. เค้าโครงหลายคอลัมน์ (Multi-column Layout)

ในโลกแบบไดนามิกของการทำเว็บและทำแอพ เทคนิคเลย์เอาต์ถือเป็นหัวใจสำคัญของการออกแบบ โดยเป็นตัวกำหนดวิธีการวาง วางแนว และนำเสนอองค์ประกอบด้วยภาพ เนื่องจากอินเทอร์เฟซมีความซับซ้อนมากขึ้นและให้ความสำคัญกับประสบการณ์ผู้ใช้ นักพัฒนาและนักออกแบบจึงต้องมีความรู้ที่กว้างขวางเกี่ยวกับเทคนิคการจัดวาง บทความนี้จะเจาะลึกเกี่ยวกับเทคนิคเลย์เอาต์ต่างๆ ที่แพร่หลายทั้งในด้านการทำเว็บและทำแอพ

1. คุณสมบัติการแสดง (Display Property)

บล็อก (Block) : ตามค่าเริ่มต้น องค์ประกอบเช่น <div>, <h1> และ <p> อยู่ในระดับบล็อก พวกเขายืดออกเต็มความกว้างของภาชนะโดยเรียงซ้อนกันในแนวตั้ง ในการทำเว็บและทำแอพ การแสดงแบบบล็อกมักใช้สำหรับส่วนเนื้อหาหลักหรือองค์ประกอบที่ต้องการการแยกที่ชัดเจน

อินไลน์ (Inline) : องค์ประกอบต่างๆ เช่น <span>, <a> และ <img> เป็นแบบอินไลน์ตามธรรมชาติ หมายความว่าองค์ประกอบเหล่านั้นอยู่ภายในการไหลขององค์ประกอบอื่นๆ โดยไม่แยกบรรทัดใหม่ มีประโยชน์สำหรับเนื้อหาภายในย่อหน้าหรือเมื่อลำดับขององค์ประกอบควรปรากฏในแนวนอน

Inline-block : นี่คือไฮบริดที่ช่วยให้องค์ประกอบอยู่ในบรรทัด แต่ยังคงคุณสมบัติเหมือนบล็อก เช่น การตั้งค่าความกว้างและความสูง มีประโยชน์อย่างยิ่งในแถบนำทางและการโต้ตอบตามไอคอนในแอป

ไม่มี (None) : การตั้งค่าการแสดงผลขององค์ประกอบเป็นไม่มีเลยจะเป็นการลบออกจากโฟลว์ภาพ มีประโยชน์สำหรับการสร้างเมนูหรือโมดอลแบบตอบสนองในแอปที่แสดงเนื้อหาบางอย่างตามเงื่อนไข

Flex : เปิดตัวพร้อมกับ Flexbox ค่านี้จะเริ่มต้นบริบท Flex สำหรับรายการย่อย มันเป็นเครื่องมืออเนกประสงค์ โดยเฉพาะอย่างยิ่งในการทำแอพ ซึ่งส่วนประกอบอินเทอร์เฟซมักจะต้องปรับขนาดและเปลี่ยนตามการวางแนวของอุปกรณ์

กริด (Grid) : การเปิดใช้งานบริบทกริด ค่านี้เป็นประตูสู่เค้าโครง CSS Grid ซึ่งอนุญาตให้มีเค้าโครงสองมิติที่ซับซ้อน

2. ตำแหน่ง

คงที่ (Static) : ค่าตำแหน่งเริ่มต้น หมายความว่าองค์ประกอบเป็นไปตามโฟลว์ปกติของเอกสาร

สัมพันธ์ (Relative) : แม้ว่าการมองเห็นอาจดูไม่เปลี่ยนแปลง แต่องค์ประกอบที่มีตำแหน่งสัมพันธ์สามารถชดเชยได้โดยใช้คุณสมบัติบน ขวา ล่าง และซ้าย เทคนิคนี้เป็นหัวใจสำคัญในการสร้างเอฟเฟกต์พารัลแลกซ์ในการทำเว็บหรือการปรับตำแหน่งไอคอนในอินเทอร์เฟซของแอพ

สัมบูรณ์ (Absolute) : ลบองค์ประกอบออกจากโฟลว์ปกติ โดยวางตำแหน่งให้สัมพันธ์กับบรรพบุรุษในตำแหน่งที่ใกล้ที่สุด เป็นรากฐานที่สำคัญสำหรับการสร้างดรอปดาวน์ โมดอล หรือการแจ้งเตือนป๊อปอัปที่กำหนดเองทั้งในการทำเว็บและทำแอพ

Fixed : ตำแหน่งนี้องค์ประกอบสัมพันธ์กับหน้าต่างเบราว์เซอร์หรือแอป ซึ่งหมายความว่าองค์ประกอบจะยังคงอยู่แม้ว่าผู้ใช้จะเลื่อนก็ตาม การวางตำแหน่งคงที่ถือเป็นสิ่งสำคัญสำหรับแถบนำทางแบบติดหนึบในการทำเว็บหรือปุ่มการทำงานแบบถาวรในแอพมือถือ

Sticky : ลูกผสมระหว่างความสัมพันธ์และคงที่ องค์ประกอบจะคงที่หลังจากที่ผู้ใช้เลื่อนเกินจุดที่กำหนด เหมาะสำหรับส่วนหัวที่เปลี่ยนเป็นแถบนำทางเมื่อผู้ใช้เลื่อนดูเนื้อหา

3. ลอยตัว (Floats) และ Clearfix

ในอดีตก่อน Flexbox และ Grid โฟลตเป็นแนวทางในการสร้างเลย์เอาต์แบบคอลัมน์ในการทำเว็บ องค์ประกอบสามารถลอยไปทางซ้ายหรือขวาได้ ทำให้เนื้อหาอื่นล้อมรอบได้ อย่างไรก็ตาม สิ่งนี้อาจนำไปสู่ปัญหาเลย์เอาต์ ซึ่งมักจะแก้ไขได้ด้วย clearfix การแฮ็ก แม้ว่าโฟลตจะพบได้น้อยในเลย์เอาต์สมัยใหม่ แต่การทำความเข้าใจมันเป็นสิ่งสำคัญในการดูแลรักษาเว็บไซต์เก่า ๆ หรือบูรณาการกับโค้ดดั้งเดิมในอินเทอร์เฟซของแอพ

4. เฟล็กซ์บ็อกซ์ (Flexbox)

Flexbox หรือเค้าโครงกล่องแบบยืดหยุ่นคือโมเดลโครงร่างหนึ่งมิติที่ช่วยให้สามารถสร้างเลย์เอาต์ที่ซับซ้อนด้วยโค้ดเบสที่สะอาดตายิ่งขึ้น Flexbox โดดเด่นเป็นพิเศษในการทำแอพ โดยแก้ไขปัญหาที่เกี่ยวข้องกับการจัดกึ่งกลางแนวตั้ง ขนาดขององค์ประกอบที่สม่ำเสมอ และการกระจายพื้นที่ ด้วยการควบคุม flex-direction, justify-content, align-items และคุณสมบัติอื่นๆ นักพัฒนาสามารถสร้างอินเทอร์เฟซที่ตอบสนอง สะอาดตา และปรับขนาดได้สำหรับทั้งเว็บไซต์และแอป

5. กริด (Grid) CSS

CSS Grid ซึ่งเป็นระบบสองมิติได้ปฏิวัติรูปแบบเว็บและแอป ทำให้นักพัฒนาสามารถสร้างทั้งคอลัมน์และแถวได้อย่างง่ายดาย สามารถตั้งชื่อพื้นที่ตารางได้ และวางองค์ประกอบได้อย่างชัดเจน ทำให้สามารถควบคุมได้อย่างมาก ถือเป็นสิ่งล้ำค่าสำหรับการสร้างเค้าโครงเหมือนนิตยสารสำหรับการทำเว็บหรืออินเทอร์เฟซแอปที่ซับซ้อน ซึ่งการควบคุมทั้งแถวและคอลัมน์ถือเป็นสิ่งสำคัญ

6. เค้าโครงหลายคอลัมน์ (Multi-column Layout)

สำหรับไซต์หรือแอปที่มีข้อความจำนวนมาก เค้าโครงแบบหลายคอลัมน์จะเลียนแบบคอลัมน์ในหนังสือพิมพ์ โดยแบ่งเนื้อหาออกเป็นหลายคอลัมน์เพื่อให้อ่านง่ายขึ้น ด้วยการตั้งค่า column-count และ column-gap นักพัฒนาสามารถแบ่งเนื้อหาออกเป็นส่วนย่อยๆ ได้อย่างง่ายดาย ปรับปรุงประสบการณ์ผู้ใช้บนแพลตฟอร์มการอ่านหรือแอปข่าวสาร


การเรียนรู้เทคนิคเลย์เอาท์อย่างเชี่ยวชาญถือเป็นหัวใจสำคัญสำหรับมืออาชีพที่เกี่ยวข้องกับการทำเว็บและทำแอพ เมื่ออินเทอร์เฟซผู้ใช้พัฒนาขึ้น เทคนิคพื้นฐานในการสร้างประสบการณ์เหล่านี้ก็มีความซับซ้อนและความสามารถเพิ่มมากขึ้นเช่นกัน ไม่ว่าคุณจะวางตำแหน่งองค์ประกอบ สร้างตารางแบบตอบสนอง หรือดูแลให้ข้อความไหลอย่างเป็นธรรมชาติ การทำความเข้าใจและใช้เทคนิคเหล่านี้อย่างมีประสิทธิภาพจะทำให้คุณและโครงการของคุณแตกต่าง

ด้วยการพัฒนาเทคโนโลยีอย่างต่อเนื่อง การอัพเดทกลยุทธ์การจัดวางล่าสุดจึงเป็นสิ่งสำคัญ เทคนิคที่ล้ำหน้าของวันนี้อาจกลายเป็นมาตรฐานของวันพรุ่งนี้ และในโดเมนการทำเว็บและทำแอพที่เปลี่ยนแปลงไปอย่างรวดเร็ว ความสามารถในการปรับตัวถือเป็นกุญแจสำคัญ


CSS คืออะไร

CSS คือ ตอนที่ 4 : ข้อความ (Text) และแบบอักษร (Fonts)
CSS คือ ตอนที่ 6 : การออกแบบที่ตอบสนอง (Responsive Design)