ความแตกต่างระหว่าง "เฟล็กซ์" และ "อินไลน์เฟล็กซ์"
คำตอบสั้น ๆ :
หนึ่งคือแบบอินไลน์และอื่น ๆ ตอบสนองโดยทั่วไปเช่นองค์ประกอบบล็อก (แต่มีความแตกต่างของตัวเองบางส่วน)
คำตอบอีกต่อไป:
Inline-Flex - เวอร์ชันยืดหยุ่นของอินไลน์ช่วยให้องค์ประกอบและเป็นลูกได้มีคุณสมบัติยืดหยุ่นในขณะที่ยังคงอยู่ในการไหลปกติของเอกสาร / เว็บเพจ โดยทั่วไปคุณสามารถวางคอนเทนเนอร์อินไลน์แบบยืดหยุ่นสองอันในแถวเดียวกันหากความกว้างมีขนาดเล็กพอโดยไม่ต้องใส่สไตล์มากจนเกินไปเพื่อให้พวกมันมีอยู่ในแถวเดียวกัน นี่คล้ายกับ "inline-block"
งอ - คอนเทนเนอร์และลูกนั้นมีคุณสมบัติยืดหยุ่น แต่คอนเทนเนอร์สงวนแถวเนื่องจากมันถูกนำออกจากการไหลปกติของเอกสาร มันตอบสนองเหมือนองค์ประกอบบล็อกในแง่ของการไหลของเอกสาร คอนเทนเนอร์ flexbox สองอันไม่สามารถอยู่ในแถวเดียวกันโดยไม่มีการใส่สไตล์มากเกินไป
ปัญหาที่คุณอาจประสบ
เนื่องจากองค์ประกอบที่คุณระบุไว้ในตัวอย่างของคุณแม้ว่าฉันจะคาดเดา แต่ฉันคิดว่าคุณต้องการใช้เฟล็กซ์เพื่อแสดงองค์ประกอบที่อยู่ในรูปแบบคู่ต่อแถว แต่ยังคงเห็นองค์ประกอบแบบเคียงข้างกัน
เหตุผลที่คุณน่าจะมีปัญหาคือเนื่องจาก flex และ inline-flex มีคุณสมบัติ "ทิศทางทิศทาง" เริ่มต้นที่ตั้งค่าเป็น "แถว" นี้จะแสดงเด็ก ๆ เคียงข้างกัน การเปลี่ยนคุณสมบัตินี้เป็น "คอลัมน์" จะทำให้องค์ประกอบของคุณสามารถสแต็กและสำรองพื้นที่ (ความกว้าง) เท่ากับความกว้างของพาเรนต์
ด้านล่างนี้เป็นตัวอย่างบางส่วนเพื่อแสดงให้เห็นว่า flex vs inline-flex ทำงานอย่างไรและยังแสดงการสาธิตอย่างรวดเร็วว่าองค์ประกอบแบบอินไลน์และบล็อกทำงานอย่างไร ...
display: inline-flex; flex-direction: row;
ซอ
display: flex; flex-direction: row;
ซอ
display: inline-flex; flex-direction: column;
ซอ
display: flex; flex-direction: column;
ซอ
display: inline;
ซอ
display: block
ซอ
นอกจากนี้เอกสารอ้างอิงที่ยอดเยี่ยม:
คู่มือฉบับสมบูรณ์เกี่ยวกับเทคนิค Flexbox - css
inline-flex
และflex
: jsfiddle.net/mgr0en3q/1 ซอดั้งเดิมโดย @ fish-graphics และ @astridx