CSS float: considerazioni, suggerimenti e per una buona macetes layout sul web
11 luglio 2008 11 commenti
Capire il corretto funzionamento e la dinamica del CSS di proprietà "float" è fondamentale per lo sviluppo e la strutturazione di buona layout per Web. Imparare a utilizzare correttamente galleggiante su siti web e progetti web, in generale, è di estrema importanza, perché, fondamentalmente, è attraverso le regole CSS usando galleggiante è possibile che compongono i layout senza l'uso di tabelle (feedback), che porta molti vantaggi come economia in tempo di carico, corrispondenti al rispetto degli standard W3C e, di conseguenza, un aumento delle prestazioni in generale.
Che cosa è "Float"?
Float è una proprietà di posizionamento dei CSS. Se hai familiarità con i progetti per la stampa, si può pensare, in un modo simile, un'immagine in un layout in cui il testo circostante, se necessario.

Come per il web design, un immagine inserita è ancora parte del flusso di pagina. Ciò significa che se ci sono delle modifiche in termini di dimensioni o se gli elementi intorno a te cambia, la pagina verrà automaticamente riadattato ( "reflow"). Diversa dalla pagina in cui gli elementi sono posizionati in modo assoluto. Elementi posizionato in modo assoluto vengono rimossi dal flusso di pagina web. Elementi posizionati assolutamente non influisce sugli altri elementi della pagina, se essi sono in contatto, o meno.
Per il galleggianti che vengono utilizzati?
Oltre a semplici esempi, come ad esempio ponendo una foto accanto a un blocco di testo, galleggianti sono utilizzati per creare layout per il Web.

Galleggianti sono utili anche per i layout di piccoli organismi. V., ad esempio, questa parte di una pagina web:

Questi tipi di layout può essere manipolato utilizzando il posizionamento assoluto all'interno relativo posizionamento, ma elementi che galleggiano (CSS proprietà "float") sono più flessibili. Ipotizziamo che le dimensioni di un avatar bisogno di essere cambiato. Con galleggianti, la casella può essere ristrutturata per accogliere un numero maggiore di dimensioni, come il posizionamento assoluto creare problemi:

Problemi con carri
"Galleggianti sono fragili". Sono pieno di "ostacoli" e cross-browser quirks. Forse la più significativa è la necessità di un "chiaro" galleggianti (CSS proprietà "chiaro") in alcune situazioni. In primo luogo, vedere alcuni esempi di ragioni per cui alcuni carri devono essere "puliti" e poi come fare questa "pulizia".
Arrumar il galleggiante per regolare l'altezza del genitore elemento
Gli elementi che contengono elementi di galleggiante non calcolare la sua altezza, come c'è da aspettarsi. In effetti, se l'elemento principale contiene solo elementi galleggianti, browser renderà il punto a zero (come se si trattasse di "altezza: 0").

Se si dà un "chiaro" prima di chiudere l'etichetta del genitore elemento, è la riparazione.

Chiaro il galleggiante per iniziare una nuova riga
Diciamo che avete una serie di elementi galleggianti.

Quindi diciamo che si desidera creare una pausa in questa rete di elementi al fine di avviare una nuova linea. Perché, sapete, ISS ha senso solo visivamente parlando.

Di dare "chiaro" solo a sinistra oa destra
I due esempi sopra sono esempi di come l'uso generico di "evidente" per la "pulizia", o dare chiare sia a destra, a sinistra. Perché galleggianti può essere sia a destra, sinistra, e ovviamente è possibile fare un galleggiante appena appena a sinistra o destra. Questo può essere d'aiuto quando si fa la pulizia di entrambe le parti ( "chiaro: entrambi") è problematico.

Se fosse stato dato un chiaro su entrambi i lati ( "chiaro: entrambi") nell'esempio precedente, la seconda immagine sarebbe stato spinto verso il basso, che termina il blocco di testo.
Diverse tecniche di Clear
Come tutto in CSS, più di un modo per farlo.
Utilizzando "Cancella" esattamente dove avete bisogno
La proprietà CSS "Cancella" è esattamente ciò che "dice la casella". Il problema sta nel dove e come applicare un elemento alla pagina con chiaro diritto di proprietà.
- Applica "chiaro: sia" l'elemento immediatamente dopo che avete bisogno di essere chiari. Prendiamo un esempio vicino alla parte superiore di una pagina web con il layout del intestazione e piè di pagina a livello complessivo, con contenuto principale e di un galleggiante a sinistra barra laterale a destra. In modo che la nota a piè di pagina viene visualizzata nel posto giusto, è necessario azzerare il galleggiante prima di lui. In questo semplice esempio, è possibile applicare applicano chiaro: sia la parte inferiore della div.
Questa tecnica è meraviglioso, perché funziona bene, senza la necessità che i codici superfluo. Tuttavia, a volte non riesce a siti web dinamici. E se, ad esempio, è dovuto aggiungere un nuovo elemento della pagina, al di sopra del fondo e quindi al di sotto del altri contenuti della pagina? Ora dovete dare un chiaro elemento in questo piuttosto che il fondo. Spesso è più facile pensare a dove abbiamo bisogno di una chiara piuttosto che su ciò che deve essere un elemento è chiaro.
- Applica "chiaro" e di cancellare il galleggiante nel vuoto. DIVs sono molto buone, perché, in generale, non si ha nessun stile applicato a loro (come in un elemento del paragrafo "P" per esempio) e non avere nessuna caratteristica (come un "<br />"). Dove necessario cancellare il galleggiante, basta digitare: <div style="clear: both;"> </ div>. Uso in linea stili non è molto "attraenti", è meglio fare una classe "chiaro" e creare una regola che rende la pulizia del galleggiante, ma questo è solo una questione di gusto.
Il metodo di vuoto DIV:
... Parte del galleggiante elemento. </ Div> <div class = "clear"> </ div> <p> ... AHHHH, ho ricevuto un "chiaro"! </ p>
CSS:
div. chiara (chiara: entrambi;) "Overflow: auto" nel elemento principale
E 'difficile spiegare perché, ma l'attuazione della proprietà CSS "overflow: auto" con i genitori elemento farà la sua altezza è calcolato correttamente. Si allargherà a comprendere l'intera galleggianti (galleggianti), piuttosto che "a bastone". Questo può essere molto utile ed è molto chiaro ", ma ha alcuni svantaggi. Il più grande di questi è che, spesso, ha senso utilizzare la regola CSS nel elemento principale. Pensare dei tempi in cui si deve dare una chiara su diversi elementi che hanno un padre in comune, nel qual caso essa non vai aiuto.
Un altro problema è che è possibile utilizzare la proprietà "overflow" per altri scopi. E se si desidera nascondere l'overflow di una scissione, in particolare? Non è possibile. Si dovranno prevedere la scissione con un altro split a farlo.
Il trucco "clearfix" (a mettere in chiaro la pseudo-classe "dopo")
Anche se vecchio, l'articolo positioniseverything sull'utilizzo di una pseudo-classe CSS per mettere in chiaro è ancora valido. Spiegando rapidamente, la tecnica è di aggiungere un po 'di sostanza dopo l'elemento. Questo po 'di contenuto (uno spazio, in genere) è rendere chiaro il lavoro, ma è nascosta dal visitatore.
Qui è un codice, applicate in un CSS classe per ogni elemento che ha bisogno di un chiaro:
/ * Questo deve essere il primo perché è ora FF3 sostenere questa * /. Clearfix (display: inline-block;). Clearfix: dopo (tenore: ""; display: block; altezza: 0; chiaro: entrambi; font-size : 0; visibilità: nascosto;) / * Nasconde da IE-mac \ * / * html. Clearfix (altezza: 1%;). Clearfix (display: block;) / * Fine nascondere da IE-mac * / L'articolo citato messaggio di avvertimento che la tecnica si sta già vecchio e parla di "overflow: auto". Non condivido l'opinione che la tecnologia sta diventando obsolete. Questo è completamente diverso da altre tecniche di overflow. Con "clearfix," si applica alla classe nel loro aspetto, non l'elemento principale. Questo significa che potete utilizzarlo anche quando non è un padre, questo significa che è possibile continuare ad utilizzare, anche se vi è un elemento principale che ha senso, ed applicare chiedendo dove l'elemento esigenze a stare a galla una chiara.
Un altro problema di galleggiamento: spinge verso il basso ( "pushdown")
Questo problema merita particolare attenzione, perché le persone hanno spesso problemi con le questioni di "cretini". Guardando ancora una volta l'esempio di prima questo articolo, la scissione dal contenuto principale galleggianti a sinistra della scissione della barra laterale. Si tratta di una struttura comune in molti blog.
Se fisso o fluidi, sia DIVs hanno una larghezza specificate. Si suppone che si comportano come elementi galleggianti, o se un elemento all'interno della zona dal contenuto principale è la larghezza più grande di tutto questo settore (ad esempio, un immagine molto grande) se semplicemente si estende attraverso rame e tutto ciò che è " Nessun modo. " Il modo in cui tratta IE6 che è molto diversa. Se un elemento è maggiore della larghezza del suo elemento principale, la barra laterale IE6 vai semplicemente essere spinto verso il basso ( "pushdown"), completamente spezzare il layout.

La risposta? La soluzione migliore è di non luogo a elementi di larghezza superiore a quella del suo elemento principale. Per proteggere meglio, e se il tuo layout opere diverso (non specificare le altezze), è possibile lavorare con "overflow: nascosto" per nascondere qualcosa che è necessario. Ancora un'altra soluzione, che utilizzano il posizionamento assoluto per posizionare la barra laterale più diretti. Ricorda, tuttavia, che il posizionamento assoluto l'elemento taglio del flusso di pagina - qualcosa da prendere in considerazione.
Per qualche tempo a sinistra su un elenco di là di un articolo di fare un "falso" il posizionamento assoluto, Faux posizionamento assoluto, che è una lettura interessante e gli indirizzi di una nuova tecnica di layout che porta molti vantaggi di posizionamento assoluto, mantenendo il flusso di pagina e non andando contro la "fragilità" degli elementi a stare a galla.
"Quirks" su elementi float
Un'altra cosa da ricordare quando si tratta di IE6 è che se si applica un margine di CSS ( "margine") nello stesso senso che il galleggiante ( "sinistra" o "destra"), dovrebbe essere il doppio del margine.
Per IE7, non vi è un piccolo trucco per il suo peculiare modo in cui esso non riesce ad abbassare i margini di CSS ( "margin-bottom") in elementi figli all'interno di oggetti galleggianti.














Congratulazioni per questo mega-articolo Tárcio! I miei studenti si amore!
Eccellente Tárcio lezioni. Amigão articolo fantastico! : D
@ Gevã Schaefer
Giuridici, Gevã! Poi a me cosa ne pensassero! ;-)
@ Paulo Faustino
Grazie, Paolo, ma i crediti vanno a Chris Coyier, ho solo tradurre rsrs…… Abraços!
Molto tutorial e congratulazioni per il blog, è davvero molto buona. ^ ^
Abraços!
@ Cayo pseudonimo Medeiros. yogodoshi
Ringrazio per le gentili parole e per il riferimento egli ha fatto per lo sviluppo Web per il tuo blog! Ho firmato il feed dei blog yogodoshi per "acceso figurine"! ;-)
Abraços!
Buona articolo:)
Sono consapevole del problema e di lavoro su questo tema. Ho pensato a che fuori e non vede molto della questione, sarà più facilmente culto a questo post, congratulazioni:)
@ Bfms
Grazie per aver scelto di considerazione, Bruno! E 'veramente è stata la mia intenzione di aiutare la traduzione di questo eccellente articolo su CSS galleggianti.
Grande abbraccio a comparire!
a problemi con il mio sito per il posizionamento. Se si può aiutare mi sarei grato.
Patrick @
Ciao, tutto bene? Qual è il problema che si è, collega?
Trackback l'11 luglio 2008
Trackback l'11 luglio 2008