FlexBox คือคอนเทนเนอร์ที่จัดวางรายการในทิศทางเดียว โดยสามารถ
ปรับขนาด จัดข้อความ ชิด และกระจายพื้นที่ระหว่างรายการต่างๆ เพื่อเติมพื้นที่
ที่ใช้ได้ให้เต็ม เลย์เอาต์นี้มีประโยชน์สำหรับรายการที่มีขนาดแตกต่างกันและสำหรับการปรับขนาด
รายการเมื่อพื้นที่ว่างเปลี่ยนแปลง
FlexBox ช่วยให้คุณทำสิ่งต่อไปนี้ได้
- ควบคุมวิธีที่รายการขยายและย่อเพื่อเติมเต็มพื้นที่ที่ใช้ได้
- ตัดรายการไปยังแถวหรือคอลัมน์ใหม่เมื่อมีพื้นที่ไม่เพียงพอ
- กระจายพื้นที่ว่างระหว่างรายการโดยใช้ค่าที่กำหนดล่วงหน้าที่สะดวก
กรณีที่ควรใช้ FlexBox
FlexBox มักใช้เพื่อแสดงรายการจำนวนเล็กน้อยภายในเลย์เอาต์หน้าจอโดยรวม สำหรับเลย์เอาต์หน้าจอโดยรวม
Grid มักจะเป็นตัวเลือกที่ดีกว่า FlexBox ไม่รองรับการโหลดไอเทมแบบเลื่อน
หากต้องการแสดงสินค้าจำนวนมาก ให้ใช้รายการและตารางกริดแบบเลซี หากต้องการขึ้นบรรทัดใหม่ ให้ใช้ FlexBox แทน FlowRow และ FlowColumn
คำศัพท์และแนวคิด
FlexBox จะจัดวางรายการในบรรทัดแนวนอนหรือแนวตั้ง ทิศทางของเส้นเหล่านี้จะกำหนดแกนหลัก 90 องศาไปยังแกนหลัก
คือแกนไขว้ ความยาวของ FlexBox ตามแกนหลักเรียกว่าขนาดหลัก ความยาวของแกนไขว้ที่เกี่ยวข้องเรียกว่าขนาดไขว้ ขนาดและแกนเหล่านี้เป็นพื้นฐานของลักษณะการทำงานของ FlexBox
FlexBoxทิศทางเป็นRow
FlexBoxทิศทางเป็นColumnใช้พร็อพเพอร์ตี้
คุณใช้พร็อพเพอร์ตี้ FlexBox ได้ 2 วิธี ดังนี้
- ไปยังคอนเทนเนอร์
FlexBoxโดยใช้FlexBox(config) - ไปยังรายการภายใน
FlexBoxโดยใช้Modifier.flex
พร็อพเพอร์ตี้ของคอนเทนเนอร์ ( |
พร็อพเพอร์ตี้ของสินค้า ( |
|---|---|
ดูข้อมูลเพิ่มเติมเกี่ยวกับพร็อพเพอร์ตี้เหล่านี้ได้ที่ตั้งค่าลักษณะการทำงานของคอนเทนเนอร์ |
ดูข้อมูลเพิ่มเติมเกี่ยวกับพร็อพเพอร์ตี้เหล่านี้ได้ที่ตั้งค่าลักษณะการทำงานของสินค้า |
ทําความเข้าใจอัลกอริทึมเลย์เอาต์ FlexBox
ฟีเจอร์ที่มีประสิทธิภาพมากที่สุดอย่างหนึ่งของ FlexBox คือความสามารถในการปรับขนาดองค์ประกอบย่อย
ให้พอดีกับพื้นที่ที่มี การทำความเข้าใจวิธีที่ FlexBox ทำเช่นนี้จะช่วยให้คุณตั้งค่าพร็อพเพอร์ตี้ FlexBox เพื่อเพิ่มประสิทธิภาพ UI สำหรับขนาดที่เป็นไปได้ทั้งหมด
อัลกอริทึมเลย์เอาต์ของ FlexBox ทำงานดังนี้
คำนวณขนาดฐานของรายการย่อย: ใช้ค่า
basisของรายการย่อย เพื่อคำนวณขนาดเริ่มต้นตามแกนหลักก่อนที่จะกระจาย พื้นที่เพิ่มเติมจัดเรียงบุตรหลาน: จัดเรียงบุตรหลานตามค่า
orderหากมีสร้างบรรทัด: สำหรับแต่ละรายการย่อย ให้ตรวจสอบว่าขนาดเริ่มต้นของรายการย่อยนั้นบวกกับ
gapจะพอดีกับพื้นที่ที่เหลือในบรรทัดปัจจุบันหรือไม่ หากมี ให้จัดเด็กคนนี้เข้าแถว หากไม่ ให้วางไว้ในบรรทัดใหม่หากเปิดใช้การตัดคำ หรือวางรายการไว้ในบรรทัดปัจจุบัน ซึ่งจะล้นออกมา (ขอบของคอนเทนเนอร์จะบดบังรายการบางส่วน)จัดแนวหรือปรับขนาดรายการในแกนหลัก: สำหรับแต่ละบรรทัด ให้กระจายพื้นที่ว่างเพิ่มเติมไปยังหรือระหว่างรายการโดยการปรับขนาดหรือการจัดแนว
จัดแนวหรือปรับขนาดรายการในแกนไขว้: สำหรับแต่ละบรรทัด ให้กระจายพื้นที่ว่างเพิ่มเติมไปยังหรือระหว่างรายการและบรรทัดโดยการยืดหรือจัดแนว
เมื่อคุ้นเคยกับแนวคิดของ FlexBox แล้ว โปรดดูเริ่มต้นใช้งานเพื่อ
สร้าง FlexBox พื้นฐาน