กลียร์ฟิกซ์และความสูงของพ่อแม่ใน CSS

ลองปล่อย div หนึ่งตัวที่มีคลาส parent ไว้ ลบข้อความออกจากมัน เหลือไว้แค่รูปภาพลอย อย่างที่คุณทราบแล้ว ในกรณีนี้ ความสูงของ div จะยุบตัวเหลือศูนย์ เหลือไว้เพียง เส้นขอบบนและล่าง ส่วนรูปภาพ จะโผล่ออกมาจาก div ด้านล่าง:

html<div class="parent">
  <img src="img.png" alt="">
</div>
css.parent {
  border: 1px solid red;
}
.parent img {
  float: left;
}

Результат:

ลองทำให้รูปภาพลอย ขยายความสูงของ div ของเราดู วิธีที่ใช้คือ เทคนิคเจ๋งๆ - วาง div ที่ไม่มีข้อความพร้อมคลาส clearfix ไว้หลังรูปภาพ

รูปภาพของเราเป็นองค์ประกอบลอยและไม่ขยาย ความสูงของพ่อแม่ แต่ div กลียร์ฟิกซ์ - ไม่ใช่ องค์ประกอบลอยและมีผลต่อความสูงของพ่อแม่

เนื่องจาก div กลียร์ฟิกซ์มีคุณสมบัติ clear กำหนดไว้ ผลลัพธ์ที่ได้คือมันจะถูกผลักโดยรูปภาพ ลงล่างและอยู่ใต้รูปภาพ ขณะเดียวกันก็ ขยายความสูงของพ่อแม่

ตัว div กลียร์ฟิกซ์เองนั้นว่างเปล่าและมองไม่เห็นบนหน้าจอ แต่ในขณะเดียวกันก็ขยายความสูงของพ่อแม่

เอาล่ะ ลองทำดู:

html<div class="parent">
  <img src="img.png" alt="">
  <div class="clearfix"></div>
</div>
css.parent {
  border: 1px solid red;
}
.parent img {
  float: left;
}

.clearfix {
  clear: both;
}

Результат: