หากต้องการนำ animation ไปใช้กับคุณสมบัติ flex-shrink ใน CSS สามารถทดลองรันโค้ดตัวอย่างด้านล่างได้
ตัวอย่างโค้ด
<!DOCTYPE html> <html> <head> <style> .mycontainer { display: flex; background-color: orange; } .mycontainer > div { background-color: white; text-align: center; line-height: 150px; font-size: 30px; width: 100px; margin: 5px; } div { animation: myanim 4s infinite; } @-webkit-keyframes myanim { 70% { flex-shrink: 1; } } </style> </head> <body> <h1>Quiz</h1> <div class = "mycontainer"> <div>Q1</div> <div>Q2</div> <div>Q3</div> <div style = "flex-shrink: 0">Q4</div> <div>Q5</div> <div>Q6</div> <div>Q7</div> <div>Q8</div> <div>Q9</div> </div> </body> </html>
คำอธิบาย
ตัวอย่างนี้ทำ animation flex-shrink จาก 0 (ค่าเริ่มต้นของบาง item) เป็น 1 ที่ 70% ของระยะเวลา Item Q4 มี flex-shrink: 0 แบบ inline style ทำให้ไม่หดตัว ขณะที่ item อื่นๆ จะหดตัวลงเมื่อ container แคบลง
เกี่ยวกับ flex-shrink:
flex-shrink: 0- ไม่หดตัว (เก็บขนาดเดิม)flex-shrink: 1- หดตัวตามสัดส่วน (ค่าเริ่มต้น)flex-shrink: <number>- หดตัวตามสัดส่วนที่กำหนด
หมายเหตุ: flex-shrink ทำงานก็ต่อเมื่อ flex items กว้างกว่า container (overflow) และไม่ได้ตั้งค่า flex-wrap: wrap