Posizionamento blocchi CSS. Posizionamento (allineamento) degli elementi di blocco nei CSS

Posizionamento blocchi CSS. Posizionamento (allineamento) degli elementi di blocco nei CSS

21.03.2022

Il posizionamento è uno dei concetti chiave nella disposizione dei blocchi. Dopo averlo affrontato, molte cose ti saranno chiare e il layout si trasformerà dallo sciamanesimo in un processo significativo. Quindi, questo articolo si concentrerà sulle proprietà CSS. posizione e galleggiante.

1 posizione: statica

Per impostazione predefinita, tutti gli elementi della pagina sono posizionati staticamente (posizione: statico), il che significa che l'elemento non è posizionato e appare nel documento nella sua posizione abituale, cioè nello stesso ordine del markup html.

Non è necessario assegnare in modo specifico questa proprietà a nessun elemento, a meno che non sia necessario modificare una posizione precedentemente impostata come predefinita.

#content( posizione: statico; )

2.posizione: relativa

Il posizionamento relativo (posizione: relativo) consente di utilizzare le proprietà superiore, inferiore, sinistra e destra per posizionare un elemento rispetto a dove apparirebbe nel posizionamento normale.

Spostiamo #content 20px in basso e 40px a sinistra:

#content( posizione: relativa; in alto: 20px; a sinistra: -40px; )

Nota che ora c'è uno spazio vuoto dove avrebbe dovuto trovarsi il nostro blocco #content. Dopo il blocco #content, il blocco #footer non è stato spostato verso il basso perché #content ha ancora il suo posto nel documento anche se lo abbiamo spostato.

A questo punto, potrebbe non sembrare che il posizionamento relativo sia molto utile, ma non saltare alle conclusioni, più avanti nell'articolo imparerai a cosa serve.

3. posizione: assoluta

Con il posizionamento assoluto (posizione: assoluto), l'elemento viene rimosso dal documento e appare dove lo dici.

Ad esempio, spostiamo il blocco #div-1a nell'angolo in alto a destra della pagina:

#div-1a ( posizione:assoluta; alto:0; destra:0; larghezza:200px; )

Nota che questa volta, poiché il blocco #div-1a è stato rimosso dal documento, gli elementi rimanenti sulla pagina sono posizionati in modo diverso: #div-1b, #div-1c e #footer sono stati spostati fino alla posizione del blocco rimosso. E il blocco #div-1a stesso si trova esattamente nell'angolo in alto a destra della pagina.

Possiamo quindi posizionare qualsiasi elemento relativo alla pagina, ma questo non basta. In realtà, dobbiamo posizionare #div-1a rispetto al blocco di #content padre. E a questo punto, torna in gioco il posizionamento relativo.

4. posizione: fissa

Il posizionamento fisso (posizione: fissa) è un sottoinsieme del posizionamento assoluto. La sua unica differenza è che è sempre nell'area visibile dello schermo e non si muove durante lo scorrimento della pagina. In questo senso, è un po' come un'immagine di sfondo fissa.

#div-1a ( posizione:fissa; in alto:0; destra:0; larghezza:200px; )

In IE con posizione: fissa, non tutto è liscio come vorremmo, ma c'è molti modi aggirare queste restrizioni.

5. posizione:relativa + posizione:assoluta

Dando al blocco #content il posizionamento relativo (posizione: relativo), possiamo posizionare qualsiasi elemento figlio rispetto ai suoi bordi. Mettiamo un blocco #div-1a nell'angolo in alto a destra del blocco #content.

#content ( position:relative; ) #div-1a ( position:absolute; top:0; right:0; width:200px; )

6. Due colonne

Forte delle conoscenze dei passaggi precedenti, puoi provare a creare due colonne utilizzando il posizionamento relativo e assoluto.

#content ( position:relative; ) #div-1a ( position:absolute; top:0; right:0; width:200px; ) #div-1b ( position:absolute; top:0; left:0; width:200px ; )

Uno dei vantaggi del posizionamento assoluto è la possibilità di posizionare gli elementi in un ordine arbitrario, indipendentemente da come si trovano nel markup. Nell'esempio sopra, il blocco #div-1b viene posizionato prima del blocco #div-1a.

E ora dovresti avere una domanda: "Dove sono finiti gli altri elementi del nostro esempio?". Sono scomparsi sotto blocchi assolutamente posizionati. Fortunatamente, c'è un modo per risolvere questo problema.

7. Due colonne ad altezza fissa

Una soluzione è dare un'altezza fissa al contenitore che contiene le colonne.

#content ( position:relative; height: 450px; ) #div-1a ( position:absolute; top:0; right:0; width:200px; ) #div-1b ( position:absolute; top:0; left:0 ;larghezza:200px; )

La soluzione non è molto adatta, dal momento che non sappiamo mai in anticipo quale dimensione verrà posizionato il testo nelle colonne e quale carattere verrà utilizzato.

8. Galleggiante

Per le colonne ad altezza variabile, il posizionamento assoluto non è adatto, quindi esaminiamo un'altra opzione.

Assegnando un float al blocco, lo spingiamo il più possibile sul bordo destro (o sinistro) e il testo che segue il blocco lo avvolgerà. Di solito questa tecnica viene utilizzata per le immagini, ma la useremo per un compito più complesso, poiché è l'unico strumento che abbiamo a nostra disposizione.

#div-1a ( float:left; width:200px; )

9. Colonne mobili

Se assegniamo float: sinistra al primo blocco e poi float: sinistra al secondo, ciascuno dei blocchi verrà premuto sul bordo sinistro e otterremo due colonne, con un'altezza variabile.

#div-1a ( float:left; width:150px; ) #div-1b ( float:left; width:150px; )

Inoltre, puoi assegnare il valore float opposto alle colonne, in questo caso verranno distribuite lungo i bordi del contenitore.

#div-1a ( float:right; width:150px; ) #div-1b ( float:left; width:150px; )

Ma ora abbiamo un altro problema: le colonne vanno oltre il contenitore padre, interrompendo così l'intero layout. Questo è il problema più comune per i progettisti di layout principianti, anche se può essere risolto abbastanza semplicemente.

10. Cancella il galleggiante

La pulizia del galleggiante può essere eseguita in due modi. Se c'è un altro blocco dopo le colonne, è sufficiente assegnare clear: entrambi.

#div-1a ( float:left; width:190px; ) #div-1b ( float:left; width:190px; ) #div-1c ( clear:both; )

Oppure assegna la proprietà overflow: hidden al contenitore padre

#contenuto ( overflow:nascosto; )

In ogni caso, il risultato sarà lo stesso.

Conclusione

Oggi sono state considerate solo le tecniche di posizionamento di base e gli esempi più semplici. Inoltre, per aiutare i designer di layout principianti, consiglio sempre una serie di articoli di Ivan Sagalaev, che un tempo mi ha aiutato molto.

Una delle cose migliori dei CSS è che gli stili ci danno la possibilità di posizionare contenuti ed elementi su una pagina in quasi tutti i modi immaginabili. Questo dà struttura al nostro design e aiuta a rendere il contenuto più visivo.

Esistono diversi tipi di posizionamento nei CSS, ognuno dei quali ha il proprio ambito. In questo capitolo, daremo un'occhiata ad alcuni casi d'uso diversi: creazione di layout riutilizzabili e posizionamento unico di elementi usa e getta, oltre a descrivere alcune tecniche per farlo.

Posizionamento tramite galleggiante

Un modo per posizionare gli elementi in una pagina è tramite la proprietà float. Questa proprietà è abbastanza versatile e può essere applicata in molti modi.

In sostanza, la proprietà float prende un elemento, lo rimuove dal flusso normale della pagina e lo posiziona a sinistra oa destra dell'elemento padre. Tutti gli altri elementi della pagina si avvolgeranno attorno a tale elemento. Ad esempio, i paragrafi si avvolgeranno attorno a un'immagine se l'elemento lo ha la proprietà float è impostata.

Quando la proprietà float viene applicata a più elementi contemporaneamente, consente di creare un layout con elementi float uno accanto o di fronte all'altro, come mostrato in un layout a più colonne.

La proprietà float accetta diversi valori, i due più popolari sono left e right , che consentono a un elemento di essere posizionato a sinistra oa destra del suo genitore.

Img ( float: sinistra; )

galleggiare in pratica

Creiamo un layout di pagina generale con un'intestazione in alto, due colonne al centro e un piè di pagina in basso. Idealmente, questa pagina dovrebbe essere contrassegnata con elementi

,
,

© 2022 hecc.ru - Notizie sulla tecnologia informatica