Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> CSS

ความแตกต่างระหว่าง CSS Flexbox และ CSS Grid

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

Flexbox – ภาพรวมโดยย่อ

CSS Flexbox นั้นเป็นโมเดลกล่องแบบตอบสนอง ช่วยให้วางตำแหน่งได้ดีขึ้นภายในคอนเทนเนอร์และใช้งานได้ง่ายตราบเท่าที่คุณรู้ถึงความสามารถของมัน

โมเดลกล่องแบบยืดหยุ่นยังคงใช้คุณสมบัติทั้งหมดของแบบจำลองกล่องเพื่อควบคุมระยะขอบ ช่องว่างภายใน เส้นขอบ และเนื้อหา เมื่อเราตั้งค่า display: flex บนคอนเทนเนอร์หลัก จะเปิดคุณสมบัติ flex ทั้งหมดที่จะใช้กับลูกของผู้ปกครองนั้น

การเลือกคุณสมบัติของ Flexbox:

  • ทิศทางการโค้งงอ :คอลัมน์ | แถว * | คอลัมน์ย้อนกลับ | กลับแถว
  • flex-wrap :ห่อ | ตอนนี้ * | ห่อกลับ
  • flex-flow :ทางลัดสำหรับสองคุณสมบัติแรกที่แสดง - มันจะเป็นไปตามรูปแบบ flex-flow: <flex-direction> <flex-wrap>;
  • ปรับเนื้อหา: ช่องว่างตามแกนหลัก เมื่อกำหนดทิศทางงอเป็นแถว แกนหลักจะเป็นแกนนอน เมื่อตั้งค่าเป็นคอลัมน์ การเข้าถึงหลักจะเป็นแกนตั้ง
    • justify-content:flex-start* | flex-end | ศูนย์ | พื้นที่เท่ากัน | พื้นที่รอบ ๆ | ช่องว่างระหว่าง
  • จัดตำแหน่งรายการ: ช่องว่างตามแกนตรงข้ามทางเข้าหลัก เมื่อกำหนดทิศทางการโค้งงอเป็นคอลัมน์ ก็จะเป็นแกนตั้ง เมื่อตั้งค่าเป็นแถว จะเป็นแกนนอน
    • จัดตำแหน่งรายการ:ยืด * |center |flex-start |flex-end |baseline
  • จัดตำแหน่งตัวเอง: อนุญาตให้ใช้กับรายการ flex ซึ่งผู้ปกครองได้ประกาศคุณสมบัติการแสดงผลเป็น 'flex' ควบคุมการจัดตำแหน่งในคอนเทนเนอร์แบบยืดหยุ่น
    • จัดตำแหน่งตัวเอง:อัตโนมัติ* | ยืด | ศูนย์ | flex-start | flex-end | พื้นฐาน

* – การตั้งค่าเริ่มต้นของคุณสมบัติ

ตาราง CSS – ภาพรวมโดยย่อ

CSS Grid เป็นโมเดลเลย์เอาต์อื่นที่พร้อมใช้งาน มันใหม่กว่า CSS Flexbox Model เล็กน้อย ดังนั้นการสนับสนุนเบราว์เซอร์จึงไม่สามารถใช้ได้อย่างกว้างขวางสำหรับ CSS Grid เช่นเดียวกับใน Flexbox เรามีความสามารถในการสร้างเลย์เอาต์ 2 มิติในคอลัมน์และแถวด้วยการวางตำแหน่งอย่างพิถีพิถัน เมื่อเราตั้งค่า display: grid ในองค์ประกอบหลักของเรา จะช่วยให้เราใช้คุณสมบัติกริดทั่วไปที่มีให้เราได้

การเลือกคุณสมบัติของตาราง CSS

  • grid-gap, grid-column-gap, grid-row-gap: ใช้เพื่อกำหนดระยะห่างโดยทั่วไป ช่องว่างของตารางเป็นทางลัดสำหรับควบคุมช่องว่างระหว่างคอลัมน์และแถว
  • grid-template-columns, grid-template-rows: วิธีนี้ช่วยให้สามารถจัดรูปแบบพื้นฐานของคอนเทนเนอร์ในกริดของคุณได้ ไม่ว่าจะเป็นความกว้างของคอลัมน์ ความสูงของแถวจะสูงแค่ไหน จำนวนคอนเทนเนอร์ในแต่ละแถว ฯลฯ
  • ปรับเนื้อหา :จัดแนวตารางทั้งหมดในแนวนอน
  • จัดแนวเนื้อหา :จัดแนวทั้งตารางในแนวตั้ง
  • กริดคอลัมน์ กริดแถว: อนุญาตให้เราประกาศว่าเราต้องการรายการกริดของเรากว้างหรือสูงแค่ไหน

ฉันจะเลือกอันไหนดี?

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

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

หากคุณมุ่งเน้นที่การวางเนื้อหาและต้องการควบคุมคอนเทนเนอร์ย่อยของคุณในอวกาศ Grid คือรูปแบบเลย์เอาต์สำหรับคุณ Flexbox ให้ความสำคัญกับการไหลของเนื้อหามากกว่าการจัดวาง

81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้

ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก

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

บทสรุป

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