CSS Flexbox
- หน้าก่อน CSS Box Sizing
- หน้าต่อไป CSS คำถาม media
โมดูลการจัดเรียง CSS Flexbox
ก่อนการเปิดตัวของโมดูลการจัดเรียงแบบ Flexbox มีโมดูลการจัดเรียงที่สามารถใช้ได้ 4 รูปแบบ
- บล็อค (Block) ใช้สำหรับส่วน (หนึ่งหน่วย) ของเว็บไซต์
- ภายในเนื้อเรื่อง (Inline) ใช้สำหรับข้อความ
- ตาราง ใช้สำหรับข้อมูลตารางสองมิติ
- การจัดตำแหน่ง ใช้สำหรับตำแหน่งเฉพาะขององค์ประกอบ
โมดูลการจัดเรียงแบบ Flexbox ที่สามารถออกแบบโครงสร้างการจัดเรียงแบบเรสโปนซีฟแบบยอมรับง่าย โดยไม่ต้องใช้เทคนิคเฟลกซ์หรือการจัดตำแหน่ง
การสนับสนุนเว็บเบราเซอร์
ทั้งหมดเว็บเบราเซอร์ที่ใช้งานปัจจุบันทุกตัวต่าง ๆ สนับสนุน flexbox
ขอบเขต
29.0 | 11.0 | 22.0 | 10 | 48 |
องค์ประกอบ Flexbox
เพื่อเริ่มใช้ Flexbox โมเดล คุณต้องการกำหนด Flex คอนเทนเนอร์ก่อนไปแรก
องค์ประกอบด้านบนนี้แสดงว่าเป็นภาชนะ flex ที่มี flex โปรเจกต์สามโปรเจกต์ (พื้นที่สีส้มนี้)
ตัวอย่าง
ภาชนะ flex ที่มี flex โปรเจกต์สามโปรเจกต์
<div class="flex-container"> <div>1</div> <div>2</div> <div>3</div> </div>
องค์ประกอบพ่อ (ภาชนะ)
ด้วยการใช้ display
คุณสมบัติตั้งค่าเป็น flex
ภาชนะ flex จะเป็นภาชนะที่สามารถยกยอดได้
ตัวอย่าง
.flex-container { display: flex; }
ด้านล่างนี้คือคุณสมบัติของภาชนะ flex
นิยาย flex-direction
flex-direction
คุณสมบัติกำหนดทางที่ภาชนะจะจัดแบบบรรยาย flex โปรเจกต์
ตัวอย่าง
column
ค่าจะจัดให้ flex โปรเจกต์จัดแบบแบนด์วอร์ค (จากบนไปทางล่าง)
.flex-container { display: flex; flex-direction: column; }
ตัวอย่าง
column-reverse
ค่าจะจัดให้ flex โปรเจกต์จัดแบบแบนด์วอร์ค (จากล่างไปทางบน)
.flex-container { display: flex; flex-direction: column-reverse; }
ตัวอย่าง
row
ค่าจะจัดให้ flex โปรเจกต์จัดแบบนอร์ทวอร์ค (จากซ้ายไปทางขวา)
.flex-container { display: flex; flex-direction: row; }
ตัวอย่าง
row-reverse
ค่าจะจัดให้ flex โปรเจกต์จัดแบบนอร์ทวอร์ค (จากขวาไปทางซ้าย)
.flex-container { display: flex; flex-direction: row-reverse; }
นิยาย flex-wrap
flex-wrap
คุณสมบัติกำหนดว่าควรเปลี่ยนแบบบรรยายของ flex โปรเจกต์หรือไม่
ตัวอย่างด้านล่างมี flex โปรเจกต์ 12 โดยมีจุดประสงค์เพื่อแสดงคุณสมบัติ flex-wrap ได้ดีขึ้น
ตัวอย่าง
wrap
ค่ากำหนดว่า flex โปรเจกต์จะเปลี่ยนแบบบรรยายเมื่อมีความจำเป็น
.flex-container { display: flex; flex-wrap: wrap; }
ตัวอย่าง
nowrap
ค่ากำหนดว่าจะไม่มีการเปลี่ยนแบบบรรยายของ flex โปรเจกต์ (ค่าเริ่มต้น)
.flex-container { display: flex; flex-wrap: nowrap; }
ตัวอย่าง
wrap-reverse
ค่ากำหนดว่าถ้ามีความจำเป็น โปรเจกต์ที่มีลูกใน flex จะเปลี่ยนแบบบรรยายที่มีลำดับตรงกันข้าม
.flex-container { display: flex; flex-wrap: wrap-reverse; }
นิยาย flex-flow
flex-flow
คุณสมบัติเป็นคุณสมบัติย่อที่ใช้ในการตั้งค่า flex-direction และ flex-wrap ในหนึ่งคำ
ตัวอย่าง
.flex-container { display: flex; flex-flow: row wrap; }
นิยาย justify-content
justify-content
คุณสมบัติสำหรับเรียงตัวของ flex โปรเจกต์
ตัวอย่าง
center
ค่าจะจัดให้ flex โปรเจกต์ตั้งตรงข้างของกลางภาชนะ
.flex-container { display: flex; justify-content: center; }
ตัวอย่าง
flex-start
ค่าจะจัดให้ flex โปรเจกต์ตั้งตรงข้างของที่สุดของภาชนะ (ค่าเริ่มต้น)
.flex-container { display: flex; justify-content: flex-start; }
ตัวอย่าง
flex-end
ค่าจะจัดให้ flex โปรเจกต์ตั้งตรงข้างของที่สุดของภาชนะ
.flex-container { display: flex; justify-content: flex-end; }
ตัวอย่าง
space-around
ค่าแสดงว่า flex โปรเจกต์ที่มีช่องว่างก่อน ระหว่าง และหลังบรรยาย
.flex-container { display: flex; justify-content: space-around; }
ตัวอย่าง
space-between
ค่าแสดงว่า flex โปรเจกต์ที่มีช่องว่างระหว่างบรรยาย
.flex-container { display: flex; justify-content: space-between; }
นิยาย align-items
align-items
คุณสมบัติสำหรับเรียงตัวของ flex โปรเจกต์ตามติดตั้ง
ในตัวอย่างเหล่านี้ เราใช้ภาชนะสูง 200 พิกเซลเพื่อแสดงถึงคุณสมบัติ align-items ได้ดีขึ้น
ตัวอย่าง
center
ค่าที่จัดลำดับองค์ประกอบ flex ที่กลางของตัวแทน:
.flex-container { display: flex; height: 200px; align-items: center; }
ตัวอย่าง
flex-start
ค่าที่จัดลำดับองค์ประกอบ flex ที่ด้านบนของตัวแทน:
.flex-container { display: flex; height: 200px; align-items: flex-start; }
ตัวอย่าง
flex-end
ค่าที่จัดลำดับองค์ประกอบ flex ที่ด้านล่างของตัวแทน:
.flex-container { display: flex; height: 200px; align-items: flex-end; }
ตัวอย่าง
stretch
ค่าที่ทำให้องค์ประกอบ flex ขยายเพื่อเติมตัวแทน (ค่าเริ่มต้น):
.flex-container { display: flex; height: 200px; align-items: stretch; }
ตัวอย่าง
baseline
ค่าที่ทำให้องค์ประกอบ flex จัดลำดับตามระดับพื้นฐาน:
.flex-container { display: flex; height: 200px; align-items: baseline; }
ข้อเตือน:ตัวอย่างนี้ใช้ font-size ต่างกันเพื่อแสดงว่าองค์ประกอบได้ถูกจัดลำดับตามระดับพื้นฐานของข้อความ:
นิยาย align-content
align-content
คุณสมบัตินี้ใช้เพื่อจัดลำดับรายการยืดเยื้อ。
ในตัวอย่างเหล่านี้ เราใช้ตัวแทนสูง 600 พิกเซล และตั้งค่าคุณสมบัติ flex-wrap ให้เป็น wrap เพื่อแสดงคุณสมบัติ align-content ได้ดียิ่งขึ้น。
ตัวอย่าง
space-between
ค่าแสดงรายการยืดเยื้อที่มีระยะห่างเท่าๆกันระหว่างรายการยืดเยื้อ:
.flex-container { display: flex; height: 600px; flex-wrap: wrap; align-content: space-between; }
ตัวอย่าง
space-around
ค่าแสดงรายการยืดเยื้อที่มีช่องว่างก่อน ระหว่าง และหลัง:
.flex-container { display: flex; height: 600px; flex-wrap: wrap; align-content: space-around; }
ตัวอย่าง
stretch
ค่าขยายรายการยืดเยื้อเพื่อเข้าไปที่ช่องว่างที่เหลือ (ค่าเริ่มต้น):
.flex-container { display: flex; height: 600px; flex-wrap: wrap; align-content: stretch; }
ตัวอย่าง
center
ค่าแสดงรายการยืดเยื้อที่อยู่ที่กลางของตัวแทน:
.flex-container { display: flex; height: 600px; flex-wrap: wrap; align-content: center; }
ตัวอย่าง
flex-start
ค่าแสดงรายการยืดเยื้อที่อยู่ที่ต้นของตัวแทน:
.flex-container { display: flex; height: 600px; flex-wrap: wrap; align-content: flex-start; }
ตัวอย่าง
flex-end
ค่าแสดงรายการยืดเยื้อที่อยู่ที่ท้ายของตัวแทน:
.flex-container { display: flex; height: 600px; flex-wrap: wrap; align-content: flex-end; }
ศูนย์กลางอย่างสมบูรณ์
ในตัวอย่างด้านล่าง จะมีการแก้ปัญหาสไตล์ที่เป็นไปตามปกติ: ศูนย์กลางอย่างสมบูรณ์。
แนะแนวแก้ปัญหา: จัดตั้ง justify-content
และ align-items
ตั้งค่าคุณสมบัติเป็นศูนย์กลาง แล้วองค์ประกอบ flex จะศูนย์กลางอย่างสมบูรณ์:
ตัวอย่าง
.flex-container { display: flex; height: 300px; justify-content: center; align-items: center; }
องค์ประกอบ (โครงการ)
องค์ประกอบที่เป็นลูกของตัวแทน flex จะกลายเป็นองค์ประกอบยืดเยื้อ (flex) โดยอัตโนมัติ。
上面的元素代表一個灰色彈性容器內的四个藍色彈性項目。
ตัวอย่าง
<div class="flex-container"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> </div>
用於彈性項目的屬性有:
order
flex-grow
flex-shrink
flex-basis
flex
align-self
order 屬性
order
屬性規定 flex 项目的順序。
代碼中的首個 flex 項目不必在佈局中顯示為第一項。
order
值必須是數字,默認值是 0。
ตัวอย่าง
order
屬性可以改變 flex 项目的順序:
<div class="flex-container"> <div style="order: 3">1</div> <div style="order: 2">2</div> <div style="order: 4">3</div> <div style="order: 1">4</div> </div>
flex-grow 屬性
flex-grow
屬性規定某個 flex 項目相對於其餘 flex 項目將增長多少。
該值必須是數字,默認值是 0。
ตัวอย่าง
使第三個彈性項目的增長速度比其他彈性項目快八倍:
<div class="flex-container"> <div style="flex-grow: 1">1</div> <div style="flex-grow: 1">2</div> <div style="flex-grow: 8">3</div> </div>
flex-shrink 屬性
flex-shrink
屬性規定某個 flex 項目相對於其餘 flex 項目將收縮多少。
該值必須是數字,默認值是 0。
ตัวอย่าง
不要讓第三個彈性項目收縮得與其他彈性項目一樣多:
<div class="flex-container"> <div>1</div> <div>2</div> <div style="flex-shrink: 0">3</div> <div>4</div> <div>5</div> <div>6</div> <div>7</div> <div>8</div> <div>9</div> <div>10</div> </div>
flex-basis 屬性
flex-basis
屬性規定 flex 项目的初始長度。
ตัวอย่าง
將第三個彈性項目的初始長度設置為 200 像素:
<div class="flex-container"> <div>1</div> <div>2</div> <div style="flex-basis: 200px">3</div> <div>4</div> </div>
flex 屬性
flex
屬性是 flex-grow、flex-shrink 和 flex-basis 屬性的簡寫屬性。
ตัวอย่าง
使第三個彈性項目不可增長(0),不可收縮(0),且初始長度為 200 像素:
<div class="flex-container"> <div>1</div> <div>2</div> <div style="flex: 0 0 200px">3</div> <div>4</div> </div>
align-self 屬性
align-self
属性規定彈性容器內所選項目的對齊方式。
align-self
คุณสมบัติจะแทนที่การจัดลำดับโดยเริ่มต้นที่กำหนดโดยคุณสมบัติ align-items ของฝาก
ในตัวอย่างเหล่านี้ เราใช้ฝากสูง 200 พิกเซลเพื่อแสดงคุณสมบัติ align-self ได้ดีขึ้น:
ตัวอย่าง
จัดลำดับองค์ประกอบที่มีลักษณะอัตรายนต์ที่สามของตัวเลขขึ้นตามกลางของฝาก:
<div class="flex-container"> <div>1</div> <div>2</div> <div style="align-self: center">3</div> <div>4</div> </div>
ตัวอย่าง
จัดลำดับองค์ประกอบที่มีลักษณะอัตรายนต์ที่สองตัวแรกของตัวเลขขึ้นที่ด้านบนของฝาก และองค์ประกอบที่สามของตัวเลขขึ้นที่ด้านล่างของฝาก:
<div class="flex-container"> <div>1</div> <div style="align-self: flex-start">2</div> <div style="align-self: flex-end">3</div> <div>4</div> </div>
คลังภาพที่ใช้ Flexbox ที่สามารถปรับเปลี่ยนทันที
ใช้ flexbox ทำคลังภาพที่สามารถปรับเปลี่ยนทันที ซึ่งเปลี่ยนจากสี่ภาพ สองภาพ หรือภาพครอบหน้าจอตามขนาดหน้าจอ:
เว็บไซต์ที่ใช้ Flexbox ที่สามารถปรับเปลี่ยนทันที
ใช้ flexbox ทำเว็บไซต์ที่สามารถปรับเปลี่ยนทันที ซึ่งมีนาฬิกาแบบอัตรายนต์และเนื้อหาที่มีลักษณะอัตรายนต์:
CSS Flexbox คุณสมบัติ
ตารางข้างล่างแสดงคุณสมบัติ CSS ที่ใช้กับ flexbox:
คุณสมบัติ | บรรยาย |
---|---|
display | กำหนดชนิดกล่องสำหรับองค์ประกอบ HTML。 |
flex-direction | กำหนดทิศทางขององค์ประกอบที่มีลักษณะอัตรายนต์ในช่องที่มีลักษณะอัตรายนต์。 |
justify-content | คว่ำแน่นตรงแนวน้ำที่ขององค์ประกอบที่มีลักษณะอัตรายนต์ไม่ใช้ความสูงทั้งหมดของเส้นหลักที่ใช้ในแถวหลัก。 |
align-items | คว่ำแน่นองค์ประกอบเมื่อองค์ประกอบที่มีลักษณะอัตรายนต์ไม่ใช้ความสูงทั้งหมดของเส้นหลักที่ใช้ในแถวหลัก。 |
flex-wrap | กำหนดว่าองค์ประกอบที่มีลักษณะอัตรายนต์ควรเปลี่ยนบวกเลขหรือไม่ หากไม่มีพื้นที่เพียงพอในแถว flex ที่จะรองรับพวกเขา。 |
align-content | แก้ไขพฤติกรรมของ flex-wrap อย่างไร。 |
flex-flow | flex-direction และ flex-wrap ค่าตัวย่อของพวกเขา。 |
order | กำหนดลำดับขององค์ประกอบที่มีลักษณะอัตรายนต์เมื่อเทียบกับองค์ประกอบอื่น ๆ ในฝากตัวเดียวกัน。 |
align-self | ใช้สำหรับองค์ประกอบที่มีลักษณะอัตรายนต์。 |
flex | flex-grow、flex-shrink และ flex-basis ค่าตัวย่อของพวกเขา。 |
- หน้าก่อน CSS Box Sizing
- หน้าต่อไป CSS คำถาม media