พร็อพเพอร์ตี้ gap ของ CSS มีไว้สำหรับเครื่องมือเลย์เอาต์ Flexbox และแบบหลายคอลัมน์ของ CSS ใน Chromium
ช่องว่างของ CSS
gap เป็นแบบสัมพันธ์กับโฟลว์ ซึ่งหมายความว่าค่าจะเปลี่ยนแปลง
แบบไดนามิกตามทิศทางการไหลของเนื้อหา เช่น gap จะปรับโดยอัตโนมัติ
สำหรับค่า writing-mode หรือ direction ต่างๆ ที่คุณตั้งค่าไว้สำหรับ
ผู้ใช้ในต่างประเทศ ซึ่งจะช่วยลดภาระในการแก้ปัญหาเรื่องการเว้นวรรคสำหรับผู้เขียนคอมโพเนนต์และ CSS ได้อย่างมาก ลดการปรับขนาดโค้ดเพิ่มเติม
ความเข้ากันได้กับเบราว์เซอร์
การใช้งาน
gap ยอมรับ length
หรือ percentage ของ CSS เป็นค่า
.gap-example {
display: grid;
gap: 10px;
gap: 2ch;
gap: 5%;
gap: 1em;
gap: 3vmax;
}
คุณส่งค่าช่องว่างได้ 1 ความยาว ซึ่งจะใช้กับทั้งแถวและคอลัมน์
.grid { display: grid; gap: 10px; }
.grid { display: grid; row-gap: 10px; column-gap: 10px; }
Gap สามารถส่งความยาวได้ 2 รายการ ซึ่งจะใช้สำหรับแถวและคอลัมน์
.grid { display: grid; gap: 10px 5%; }
.grid { display: grid; row-gap: 10px; column-gap: 5%; }
Flexbox gap
ก่อนที่ gap จะอยู่ใน Flexbox กลยุทธ์ต่างๆ เกี่ยวข้องกับระยะขอบติดลบ ตัวเลือกที่ซับซ้อน
:last หรือตัวเลือก:firstประเภทคลาสเสมือน หรือวิธีอื่นๆ ในการจัดการพื้นที่
ของชุดองค์ประกอบย่อยที่จัดวางแบบไดนามิกและตัดข้อความ
ความพยายามก่อนหน้า
รูปแบบต่อไปนี้เป็นรูปแบบที่ผู้ใช้ใช้เพื่อให้ได้ช่องว่างคล้ายช่องว่าง
.layout > :not(:last-child) { margin-bottom: 10px; margin-right: 10px; }
อย่างไรก็ตาม ตัวเลือกข้างต้นไม่ได้ใช้แทน gap ได้อย่างสมบูรณ์ และมักต้องมีการปรับ @media
หรือ :lang() เพื่อพิจารณาสถานการณ์การตัดข้อความ โหมดการเขียน หรือทิศทาง
การเพิ่ม Media Query 1 หรือ 2 รายการอาจดูไม่เป็นปัญหา แต่เมื่อเพิ่มมากขึ้นเรื่อยๆ ก็อาจทำให้ตรรกะเลย์เอาต์ซับซ้อนขึ้น
สิ่งที่ผู้เขียนด้านบนต้องการจริงๆ คือไม่ให้รายการย่อยใดๆ สัมผัสกัน
The Antidote: gap
.layout {
display: flex;
gap: 10px;
}
ใน 2 ตัวอย่างแรก (ไม่มี Flexbox gap) ระบบจะกำหนดเป้าหมายไปยังองค์ประกอบย่อยและ
กำหนดระยะห่างจากองค์ประกอบอื่นๆ ในตัวอย่างช่องว่างของยาแก้พิษ คอนเทนเนอร์
เป็นเจ้าของระยะห่าง โดยแต่ละองค์ประกอบจะลดภาระของตัวเองลงได้ ในขณะเดียวกันก็
รวมการเป็นเจ้าของระยะห่างไว้ที่ส่วนกลางด้วย ลดความซับซ้อนของความสอดคล้อง จัดลำดับใหม่
เปลี่ยนวิวพอร์ต นำองค์ประกอบออก เพิ่มองค์ประกอบใหม่ ฯลฯ และระยะห่างจะยังคง
สอดคล้องกัน ไม่มีตัวเลือกใหม่ ไม่มี Media Query ใหม่ มีเพียงช่องว่าง
การอัปเดตเครื่องมือสำหรับนักพัฒนาเว็บใน Chromium
การอัปเดตเหล่านี้มาพร้อมกับการเปลี่ยนแปลงเครื่องมือสำหรับนักพัฒนาเว็บใน Chromium โปรดสังเกตว่าตอนนี้แผงรูปแบบ
จัดการ grid-gap และ gap อย่างไร 👍
grid-gap และ gap โดยจะแสดง gap ที่ใช้ใต้ grid-gap เพื่อให้การเรียงซ้อนใช้ไวยากรณ์ล่าสุดเครื่องมือสำหรับนักพัฒนาเว็บรองรับทั้ง grid-gap และ gap เนื่องจาก gap เป็น
ชื่อแทนของไวยากรณ์ก่อนหน้า
ศักยภาพของเลย์เอาต์ใหม่
Flexbox gap ไม่ได้มอบแค่ความสะดวกสบาย เราปลดล็อกเลย์เอาต์ที่ทรงพลัง เว้นวรรคอย่างสมบูรณ์แบบ และมีลักษณะเฉพาะ ในวิดีโอและตัวอย่างโค้ดต่อไปนี้ Grid
ไม่สามารถสร้างเลย์เอาต์ที่ Flexbox ทำได้ ตารางกริดต้องมีแถวและคอลัมน์เท่ากัน
แม้ว่าจะมีการกำหนดค่าโดยธรรมชาติก็ตาม
นอกจากนี้ ให้สังเกตว่าระยะห่างระหว่างองค์ประกอบย่อยจะเปลี่ยนแปลงไปอย่างไรเมื่อมีการตัดข้อความ
ในลักษณะดังกล่าว Media Query ไม่สามารถตรวจหาการตัดคำในลักษณะดังกล่าวเพื่อทำการปรับเปลี่ยนอย่างชาญฉลาดได้
Flexbox gap ทำได้และจะดำเนินการให้คุณในทุกการแปล
หลายคอลัมน์ gap
นอกเหนือจาก Flexbox ที่รองรับไวยากรณ์ gap แล้ว เลย์เอาต์แบบหลายคอลัมน์ยังรองรับไวยากรณ์ gap ที่สั้นกว่าด้วย
article {
column-width: 40ch;
column-gap: 5ch;
gap: 5ch;
}
เจ๋งไปเลย