Clearfix og forældrehøjde i CSS
Lad os efterlade en div med klassen parent,
fjerne teksten fra den og kun efterlade det flydende
billede. Som du allerede ved, i dette tilfælde
vil div'ens højde kollapse til nul, kun
den øverste og nederste kant vil være tilbage. Billedet
vil dog stikke ud under vores div forneden:
<div class="parent">
<img src="img.png" alt="">
</div>
.parent {
border: 1px solid red;
}
.parent img {
float: left;
}
:
Lad os gøre det således, at det flydende billede
udvider vores div i højden. Til dette bruges
et smart trick - lad os placere en div
uden tekst med klassen clearfix efter billedet.
Vores billede er et flydende element og udvider ikke forælderens højde, men div-clearfix'en - er ikke flydende og påvirker forælderens højde.
Da div-clearfix'en har egenskaben clear tildelt,
vil det betyde, at den vil skubbes ned af billedet
og stå under det, hvilket samtidig udvider
forælderens højde.
Div-clearfix'en selv er tom og ikke synlig på skærmen, men udvider alligevel forælderens højde.
Så, lad os prøve:
<div class="parent">
<img src="img.png" alt="">
<div class="clearfix"></div>
</div>
.parent {
border: 1px solid red;
}
.parent img {
float: left;
}
.clearfix {
clear: both;
}
: