Una de les tècniques més robustes actualment per aconseguir que una caixa contingui tots els seus fills flotants és usar overflow: hidden.
A Hack: Contenir caixes flotants
vaig explicar el mètode tal i com el proposava n'Alex Walker però després de força proves l'he desestimat en pro d'aquest.
La tècnica
Donat un XHTML:
<div id="contenidor">
<p id="flotant">
Lorem ipsum dolor sit amet,
consectetuer adipiscing elit.
</p>
<p>
Sed commodo. Fusce fringilla molestie libero.
In ac diam vitae eros fringilla congue.
</p>
</div>
S'aplicaria un CSS tipus:
#contenidor {
overflow: hidden;
_display: inline-block; /*només per IE6*/
}
L'ús del guió baix a l'exemple només serveix per marcar les propietats exclusives per l'Internet Explorer 6.
L'overflow: hidden farà que els navegadors tipus Firefox, Opera, Safari, Konqueror i Internet Explorer 7 contingui les caixes flotants.
Per l'Internet Explorer 6 caldrà afegir només per ell un display: inline-block. En navegadors tipus Opera i Safari pot donar algun efecte no desitjat.
Si s'ha de donar suport per Netscape 7.1 de Windows aquesta tècnica no és vàlida i caldria seguir emprant la tècnica de la caixa generada.
Aquesta solució funciona millor en la majoria de navegadors ja que l'ús de l'overflow: auto fa que la caixa capturi el focus creant un problema de navegació mitjançant el teclat i en Internet Explorer genera scrolls no desitjats.
Comentaris
Comentat per choan el 23/11/06
Un exemple amb un hack invàlid… Benvingut al ”reverso tenebroso” XD
Comentat per are el 24/11/06
Només és un mètode per diferenciar aquí què és de l’IE6 i què no ;)
Comentat per Francesc Rosàs el 07/12/06
Bon hack. Fins ara he anat amb l’easy clearing hack però veig que aquest li dóna mil voltes en senzillesa.
PD: Veig que, al previsualitzar, el text escrit canvia lleugerament (el apòstrofs canvien per la seva entitat, s’afegeixen els tags dels paràgrafs, …)
Comentat per are el 07/12/06
Sí, encara em cal revisar el tema de formateig per eliminar les entitats aquestes.