CSS float: considérations, des conseils et des macetes pour une bonne mise en page sur le Web
Juillet 11, 2008 11 commentaires
Comprendre le bon fonctionnement et la dynamique de la propriété CSS "float" est fondamentale pour le développement et la structuration de bonnes mises en page pour le Web. Apprenez à utiliser correctement flotter sur les sites web et projets web, en général, est d'une extrême importance parce que, fondamentalement, se fait par l'utilisation de règles CSS float est possible que les mises en page composer sans l'utilisation de tableaux (feedback), qui apporte de nombreux avantages tels que l'économie dans le temps de chargement, correspondant aux standards du W3C et donc une augmentation des performances en général.
Qu'entend-on par «Float»?
Flotteur est une propriété de positionnement CSS. Si vous êtes familier avec des projets pour les médias imprimés, vous pouvez penser, de la même manière, une image d'une mise en page où le texte environnant en cas de besoin.

Comme pour la conception de Web, une image insérée fait toujours partie du flux de la page. Cela signifie que si des modifications sont apportées à la taille ou de savoir si des éléments autour de vous changer, la page sera automatiquement réajusté ( "reflow"). Cela diffère de la page sur laquelle les éléments sont positionnés de façon absolue. Éléments positionnés de façon absolue sont retirés de la circulation de la page Web. Éléments positionnés absolument aucune incidence sur les autres éléments de la page, si elles sont en contact, ou non.
Pour que les flotteurs sont utilisés?
En plus des exemples simples, comme une image mise à côté d'un bloc de texte, les flotteurs sont utilisés pour créer des mises en page pour le Web.

Les chars sont également utiles pour l'aménagement des petits corps. Voir, par exemple, cette partie d'une page Web:

Ces types de mises en page peuvent être manipulées en utilisant le positionnement absolu au sein de positionnement relatif, mais des éléments qui flottent (propriété CSS "float") sont plus souples. Imaginons que la taille de l'image d'un avatar besoin d'être changée. Avec flotteurs, la boîte peut être restructuré afin d'accueillir un plus grand taille, comme un positionnement absolu de créer des problèmes:

Problèmes avec flotteurs
"Les chars sont fragiles." Ils sont pleins de «revers» et traverser navigateur bizarreries. Peut-être la plus importante est la nécessité pour "clair" flotteurs (propriété CSS "clear") dans certaines situations. Tout d'abord, voir quelques exemples des raisons pour lesquelles certains flotteurs doivent être "propres" et puis comment faire ce "nettoyage".
Arrumar le char d'ajuster la hauteur de l'élément parent
Les éléments qui contiennent des éléments flottent pas calculer sa hauteur car il est à prévoir. En fait, si l'élément parent ne contient que des éléments flotteurs, les navigateurs se rendre au point zéro (comme si c'était "height: 0").

Si vous donnez une "claire" avant de fermer le tag de l'élément parent, vous le réparer.

Effacer le char de commencer une nouvelle ligne
Disons que vous avez une série d'éléments flottants.

Donc, disons que vous voulez créer une pause dans cette grille d'éléments afin de lancer une nouvelle ligne. Parce que, vous le savez, iss n'a de sens que visuellement parlant.

En donnant "clair" que vers la gauche ou la droite
Les deux exemples ci-dessus sont des exemples de la façon dont l'utilisation générique de "clarté" au "nettoyage", ou donner des indications claires tant pour le droit, sur la gauche. Parce que les flotteurs peuvent être à la fois à droite, comme la gauche, et vous pouvez bien sûr faire flotter un peu à gauche ou à droite. Cela peut être utile lorsque vous faites le nettoyage des deux parties ( "clair: les deux") est problématique.

S'il avait été donné une claire sur les deux côtés ( «claire: les deux") dans l'exemple ci-dessus, la seconde image aurait été poussé vers le bas, qui se termine le bloc de texte.
Différentes techniques de Clear
Comme dans tout CSS, plus d'un moyen d'y parvenir.
Utilisation de "clair" exactement où vous en avez besoin
La propriété CSS "claire" est exactement ce que dit la boîte. " Le problème réside dans le lieu et la manière d'appliquer un élément à la page avec des droit de propriété.
- Appliquer "clair: à la fois" la question immédiatement après que vous avez besoin d'être clair. Prenons un exemple, vers le haut d'une page Web avec la disposition de l'en-tête et pied de l'échelle totale, dont le contenu et un flottant à gauche l'encadré à droite. Afin que la note de bas de page apparaît au bon endroit, vous devez effacer le flottant devant lui. Dans cet exemple simple, vous pouvez demander appliquer clair: à la fois tout en bas de div.
Cette technique est merveilleux, parce que cela fonctionne bien sans la nécessité, pour les codes superflu. Cependant, elle oublie parfois de sites Web dynamiques. Et si, par exemple, il convient d'ajouter un nouvel élément de page, au-dessus du fond et donc ci-dessous le contenu de la page? Maintenant vous devez donner un élément clair dans ce plutôt que le fond. Souvent, il est plus facile de penser à où nous avons besoin d'une claire plutôt que sur ce qui doit être un élément est claire.
- Appliquer "claires" et effacer le flotter dans le vide. DIVs sont très bonnes parce que, généralement, vous n'avez pas le style qui leur sont appliquées (comme dans un élément de l'alinéa "p" par exemple) et ils n'ont pas de fonction spéciale (comme un "<br />"). Lorsque nécessaire d'effacer le flotteur, il suffit d'entrer: <div style="clear: both;"> </ div>. Utilisation en ligne des styles n'est pas très "attractif", il est préférable de faire une classe "claires" et créer une règle qui rend le nettoyage du flotteur, mais c'est seulement une question de goût.
La méthode de vide DIV:
... Partie du flottant élément. </ Div> <div class = "clear"> </ div> <p> ... AHHHH, j'ai reçu un "clair"! </ p>
CSS:
div. claire (claire: les deux;) "Overflow: auto" dans l'élément parent
Il est difficile d'expliquer pourquoi, mais la mise en œuvre de la propriété CSS "overflow: auto" dans l'élément parent provoque sa hauteur est calculé correctement. Il sera élargi pour englober l'ensemble des flotteurs (flotteurs) plutôt que "à bâton». Cela peut être très utile et il est très clair ", mais a quelques inconvénients. La plus grande d'entre elles est que, souvent, il est logique d'utiliser la règle CSS dans l'élément parent. Pensez à l'époque dans laquelle vous devez donner une claire sur plusieurs éléments qui ont un père en commun, auquel cas elle ne va aider.
Un autre problème est que vous voulez mai à utiliser la propriété "overflow" à d'autres fins. Et si vous voulez masquer le débordement d'une scission, en particulier? Vous ne pouvez pas. Vous devrez inclure le partage avec une autre division de le faire.
Le hack "clearfix" (faire savoir clairement à la pseudo-classe "après")
Bien que vieux, positioniseverything l'article sur l'utilisation d'une pseudo-classe CSS pour faire clair, c'est toujours d'actualité. Expliquer rapidement, la technique consiste à ajouter un peu de substance après l'élément. Ce bit de contenu (un domaine, en général) est clairement le travail, mais il est caché par le visiteur.
Voici un code, appliquée dans une classe CSS pour tout élément qui nécessite une claire:
/ * Cela doit être d'abord parce que FF3 est maintenant l'appui de cette * /. Clearfix (display: inline-block;). Clearfix: après (le contenu: ""; display: block; hauteur: 0; clair: les deux; font-size : 0; visibility: hidden;) / * cache IE-mac \ * / * html. Clearfix (hauteur: 1%;). Clearfix (display: block;) / * Fin de cacher IE-mac * / L'article cité avertissement que la technique est vieilli et déjà parle de "overflow: auto." Je ne partage pas l'opinion selon laquelle la technologie devient obsolète. C'est complètement différent des autres techniques de débordement. Avec "clearfix», vous demandez à la classe dans leur propre élément, et non l'élément parent. Cela signifie que vous pouvez l'utiliser même quand elle n'est pas un père, cela signifie que vous pouvez continuer à l'utiliser, même si il est un élément parent qui a du sens, et de l'appliquer en se demandant où l'élément doit flotter une claire.
Un autre problème avec flotteur: pousse vers le bas ( "pushdown")
Cette question mérite une attention particulière, parce que les gens ont souvent des problèmes avec les questions de "soubresauts". Si on considère de nouveau l'exemple donné au début de cette article, la répartition du contenu des flotteurs à gauche de la scission de la barre latérale. Il s'agit d'une structure commune dans de nombreux blogs.
Que ce soit fixe ou de fluides, les deux DIVs ont une largeur spécifiée. Ils se sont censés se comporter comme des éléments flottants, ou si un élément dans la zone de contenu principal est la largeur supérieure à l'ensemble de ce domaine (par exemple, une image très grande) si elle s'étend tout simplement par le biais de cuivre et tout ce qui est " No way. " La manière dont traite IE6 qui est tout à fait différente. Si un élément est supérieure à la largeur de son élément parent, IE6 la barre latérale va tout simplement être poussé vers le bas ( "pushdown"), rompant complètement la mise en page.

La solution? La meilleure solution est de ne pas placer les éléments de largeur supérieure à celle de son élément parent. Pour mieux protéger, et si votre mise en page fonctionne différemment (sans préciser les hauteurs), vous pouvez travailler avec "overflow: hidden" pour cacher quelque chose qui est nécessaire. Pourtant, une autre solution, qui utilise le positionnement absolu pour positionner la barre latérale pour plus direct. N'oubliez pas, toutefois, que le positionnement absolu réduire l'élément de l'écoulement de la page - quelque chose à prendre en considération.
Pour peu de temps sur une liste Outre un article de faire un "faux" de positionnement absolu, Faux Positionnement absolu, qui est une lecture intéressante et répond à une nouvelle technique de présentation qui offre de nombreux avantages de positionnement absolu, tout en maintenant le débit de la page et ne pas allant à l'encontre de la «fragilité» des éléments de flotter.
"Quirks" sur les éléments float
Une autre chose à se rappeler lorsque l'on traite avec IE6, c'est que si vous appliquez une marge de CSS ( "marge") dans le même sens que le char ( "gauche" ou "droite"), il convient de doubler la marge.
Pour IE7, il ya un petit truc sur sa propre façon dont il ne parvient pas à des marges plus faibles (CSS "margin-bottom") des enfants dans les éléments des objets flottants.









Félicitations pour ce méga-article Tárcio! Mes élèves vont adorer!
Excellent Tárcio leçons. Fantastic article amigão! : D
@ Gevã Schaefer
Juridique, Gevã! Ensuite, pour moi ce qu'ils en pensaient! ;-)
@ Paulo Faustino
Je vous remercie, Paul, mais les crédits vont à Chris Coyier, je ne traduire rsrs…… Abraços!
Une grande partie tutoriel et félicitations à l'occasion de blog, est vraiment très bonne. ^ ^
Abraços!
@ Cayo alias Medeiros. yogodoshi
Je vous remercie de vos aimables paroles et pour la référence qu'il a faite au développement Web pour votre blog! J'ai signé le flux du blog yogodoshi pour "figurines en marche"! ;-)
Abraços!
Bon article:)
Je suis conscient de la question et les travaux sur cette question. Je pensais à qui et de ne pas voir beaucoup de la question, sera plus facilement culte avec ce poste, félicitations:)
@ Bfms
Merci pour examen, Bruno! C'était vraiment mon intention de les aider à traduire cet excellent article sur les CSS flotteurs.
Big hug à comparaître!
à qui ont des problèmes sur mon site pour le placement. Si vous pouvez m'aider je serais reconnaissant.
@ Patrick
Salut, ça va? Quel est le problème que vous êtes, collègue?
Trackback sur Juillet 11, 2008
Trackback sur Juillet 11, 2008