Un elemento blocco in HTML è un elemento che, per impostazione predefinita, occupa l'intera larghezza del suo elemento genitore. L'elemento genitore può essere un altro elemento di blocco o una finestra del browser. Puoi impostare la larghezza e l'altezza di un elemento di blocco utilizzando le proprietà CSS. Il posizionamento degli elementi del blocco è il processo di posizionamento degli elementi all'interno della finestra del browser e rispetto ad essi utilizzando le proprietà CSS posizione, sinistra, alto, destra e basso. La proprietà position CSS è progettata per impostare uno dei quattro tipi di posizionamento disponibili: statico (predefinito), assoluto, fisso e relativo. Le restanti proprietà CSS, ovvero left , top , right e bottom , vengono utilizzate per impostare le distanze relative ai bordi sinistro, superiore, destro e inferiore dell'elemento genitore. Inoltre, gli elementi del blocco possono sovrapporsi l'uno all'altro quando si impostano determinate proprietà e questa opportunità lo stesso può essere utilizzato sui siti web.
Posizionamento predefinito (statico)
Se non hai specificato una posizione per un elemento del blocco o hai specificato static , che è la stessa cosa, gli elementi del blocco vengono disposti in ordine. Inoltre, il blocco successivo (ad esempio: rosso) si trova su una nuova riga. Inoltre, questo posizionamento non viene influenzato dall'impostazione delle distanze a sinistra, in alto, a destra e in basso.
Posizionamento assoluto (assoluto)
Con il posizionamento assoluto, la posizione di un elemento viene specificata rispetto ai bordi della finestra del browser utilizzando le distanze specificate dalle proprietà left , top , right e bottom . Se si specificano contemporaneamente le distanze sinistra e destra e queste sono in conflitto tra loro, la preferenza viene data a sinistra , lo stesso vale per superiore e inferiore , in cui la distanza superiore ha la precedenza. Il posizionamento assoluto viene molto spesso utilizzato insieme al posizionamento relativo a fini di progettazione, quando è necessario posizionare diversi elementi tra loro; può essere utilizzato anche per creare menu a discesa, layout del sito, ecc.
Posizionamento fisso
Il posizionamento fisso è diverso dagli altri tipi di posizionamento e non si sposta con il contenuto mentre si scorre la pagina. Gli elementi del blocco a posizione fissa vengono ancorati utilizzando le proprietà left , top , right e bottom ai bordi della finestra del browser. Il posizionamento fisso viene utilizzato per creare interfacce frame (la finestra del browser è divisa in più aree), un menu fisso, un piè di pagina fisso e blocchi “permanenti” (elenco di collegamenti, pulsanti sociali eccetera.).
Posizionamento relativo
Il posizionamento relativo viene specificato specificando le distanze a sinistra, in alto, a destra e in basso rispetto alla posizione corrente.
Tuttavia, questa posizione di blocco può essere creata anche utilizzando la proprietà margin.
Il posizionamento relativo non è divertente da usare da solo, viene utilizzato principalmente insieme al posizionamento assoluto.
Consideriamo le opzioni:
Il posizionamento è uno dei concetti chiave nel layout a blocchi. Una volta che lo capisci, molto ti diventerà chiaro e il layout si trasformerà dallo sciamanesimo in un processo significativo. Pertanto, questo articolo si concentrerà sulle proprietà CSS. posizione E galleggiante.
1. posizione: statica
Per impostazione predefinita, tutti gli elementi della pagina hanno un posizionamento statico (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 specificatamente questa proprietà ad alcun elemento, a meno che non sia necessario modificare il posizionamento precedentemente impostato su quello di default.
#contenuto(posizione: statico;)
2.posizione:relativa
Il posizionamento relativo (position: relative) consente di utilizzare le proprietà top, bottom, left e right per posizionare un elemento rispetto a dove apparirebbe se posizionato normalmente.
Spostiamo #content di 20 pixel verso il basso e di 40 pixel a sinistra:
#content( posizione: relativa; superiore: 20px; sinistra: -40px; )
Nota che ora c'è spazio vuoto dove sarebbe stato il nostro blocco #content. Dopo il blocco #content, il blocco #footer non si è spostato verso il basso perché #content occupa ancora il suo posto nel documento anche se lo abbiamo spostato.
In questa fase può sembrare che il posizionamento relativo non sia così utile, ma non affrettarti a trarre conclusioni, più avanti nell'articolo imparerai a cosa può servire.
3. posizione: assoluta
Con il posizionamento assoluto (posizione: assoluta), l'elemento viene rimosso dal documento e appare dove lo hai indicato.
Spostiamo, ad esempio, il blocco #div-1a nell'angolo in alto a destra della pagina:
#div-1a ( posizione:assoluta; alto:0; destra:0; larghezza:200px; )
Da notare che questa volta, poiché il blocco #div-1a è stato rimosso dal documento, i restanti elementi della pagina sono stati posizionati diversamente: #div-1b, #div-1c e #footer sono stati spostati sopra, al posto del blocco rimosso . E il blocco stesso #div-1a si trova esattamente nell'angolo in alto a destra della pagina.
In questo modo possiamo posizionare qualsiasi elemento rispetto alla pagina, ma questo non basta. Infatti, dobbiamo posizionare #div-1a rispetto al blocco genitore #content. E a questo punto entra di nuovo in gioco il posizionamento relativo.
4. posizione: fissa
Il posizionamento fisso (posizione: fissa) è una sottosezione del posizionamento assoluto. La sua unica differenza è che è sempre nell'area visibile dello schermo e non si muove mentre si scorre la pagina. In questo senso è un po’ come un’immagine di sfondo fissa.
#div-1a ( posizione:fissa; alto:0; destra:0; larghezza:200px; )
In IE con posizione: fissa, non tutto è liscio come vorremmo, ma esiste molti modi aggirare queste restrizioni.
5. posizione:relativa + posizione:assoluta
Assegnando una posizione relativa al blocco #content (position: relative), possiamo posizionare qualsiasi elemento figlio rispetto ai suoi confini. Posizioniamo un blocco #div-1a nell'angolo in alto a destra del blocco #content.
#contenuto ( posizione:relativa; ) #div-1a ( posizione:assoluta; superiore:0; destra:0; larghezza:200px; )
6. Due colonne
Armato delle conoscenze acquisite nei passaggi precedenti, puoi provare a creare due colonne utilizzando il posizionamento relativo e assoluto.
#content ( posizione:relativa; ) #div-1a ( posizione:assoluta; superiore:0; destra:0; larghezza:200px; ) #div-1b ( posizione:assoluta; superiore:0; sinistra:0; larghezza:200px ;)
Uno dei vantaggi del posizionamento assoluto è la possibilità di posizionare gli elementi in qualsiasi ordine, 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?" Si nascondevano sotto blocchi perfettamente posizionati. Fortunatamente, c’è un modo per risolvere questo problema.
7. Due colonne ad altezza fissa
Una soluzione è dare un'altezza fissa al contenitore contenente le colonne.
#contenuto ( posizione:relativa; altezza: 450px; ) #div-1a ( posizione:assoluta; in alto:0; destra:0; larghezza:200px; ) #div-1b ( posizione:assoluta; in alto:0; sinistra:0 ; larghezza:200px; )
La soluzione non è molto adatta, poiché non sappiamo mai in anticipo quale sarà la dimensione del testo nelle colonne e quale carattere verrà utilizzato.
8. Galleggia
Per le colonne ad altezza variabile, il posizionamento assoluto non è un'opzione, quindi esaminiamo un'altra opzione.
Assegnando un float al blocco, lo spingiamo il più possibile verso il bordo destro (o sinistro) e il testo che segue il blocco scorrerà attorno ad esso. Questa tecnica viene solitamente utilizzata per le immagini, ma la utilizzeremo per un compito più complesso poiché è l'unico strumento a nostra disposizione.
#div-1a ( float:sinistra; larghezza:200px; )
9. Altoparlanti “galleggiante”.
Se assegniamo float: left al primo blocco e poi float: left al secondo, ogni blocco verrà spinto verso il bordo sinistro, e otterremo due colonne, con altezza variabile.
#div-1a ( float:sinistra; larghezza:150px; ) #div-1b ( float:sinistra; larghezza:150px; )
Puoi anche assegnare alle colonne il valore float opposto, nel qual caso verranno distribuite lungo i bordi del contenitore.
#div-1a ( float:destra; larghezza:150px; ) #div-1b ( float:sinistra; larghezza:150px; )
Ma ora abbiamo un altro problema: le colonne si estendono oltre il contenitore principale, interrompendo così l'intero layout. Questo è il problema più comune per i progettisti di layout principianti, sebbene possa essere risolto in modo abbastanza semplice.
10. Galleggiante di pulizia
La pulizia dei galleggianti può essere effettuata in due modi. Se c'è un altro blocco dopo le colonne, è sufficiente assegnargli clear: entrambi.
#div-1a ( float:sinistra; larghezza:190px; ) #div-1b ( float:sinistra; larghezza:190px; ) #div-1c ( clear:entrambi; )
Oppure assegna la proprietà overflow: hidden al contenitore principale
#contenuto (overflow:nascosto;)
In ogni caso il risultato sarà lo stesso.
Conclusione
Oggi venivano prese in considerazione solo le tecniche di posizionamento di base, e la maggior parte semplici esempi. Inoltre, per aiutare i progettisti di layout principianti, consiglio sempre una serie di articoli di Ivan Sagalayev, che un tempo mi ha aiutato molto.
Posizione insolita!
Decidi quale elemento visualizzare in primo piano!
Gli elementi potrebbero sovrapporsi!
Posizionamento
Le proprietà di posizionamento CSS ti consentono di posizionare un elemento. Possono anche posizionare un elemento dietro un altro e specificare cosa dovrebbe accadere quando il contenuto dell'elemento è troppo grande.
Gli elementi possono essere posizionati utilizzando le proprietà superiore, inferiore, sinistra e destra. Tuttavia, queste proprietà non funzioneranno a meno che non venga impostata la proprietà position. Inoltre funzionano in modo diverso a seconda del metodo di posizionamento.
Esistono quattro diversi metodi di posizionamento.
Posizionamento statico
Gli elementi HTML sono posizionati staticamente per impostazione predefinita. Un elemento posizionato staticamente viene sempre posizionato secondo il flusso standard degli elementi sulla pagina.
Gli elementi posizionati staticamente non sono influenzati dalle proprietà top, bottom, left e right.
Posizionamento fisso
Un elemento a posizione fissa viene posizionato rispetto alla finestra del browser.
Non si sposterà anche se si scorre la finestra:
Commento: IE7 e IE8 supportano il valore fisso solo se è specificato il tipo di documento!DOCTYPE.
Gli elementi fissi vengono rimossi dal flusso normale. Il documento e gli altri elementi si comportano come se l'elemento fisso non esistesse.
Gli elementi fissi possono sovrapporsi ad altri elementi.
Posizionamento relativo
Un elemento posizionato relativamente viene posizionato rispetto alla sua posizione normale.
Gli elementi posizionati relativi vengono spesso utilizzati come contenitori per elementi posizionati in modo assoluto.
Posizionamento assoluto
Un elemento posizionato in modo assoluto viene posizionato rispetto al primo elemento genitore posizionato in modo diverso da quello statico. Se non viene trovato alcun elemento di questo tipo, viene considerato l'elemento genitore :
Gli elementi posizionati in modo assoluto vengono rimossi dal flusso degli elementi standard. Il documento e gli altri elementi si comportano come se l'elemento posizionato in modo assoluto non esistesse.
Gli elementi posizionati in modo assoluto possono sovrapporsi ad altri elementi.
Elementi sovrapposti
Quando gli elementi si trovano al di fuori del flusso standard, possono sovrapporsi ad altri elementi.
La proprietà z-index specifica l'ordine verticale di un elemento (quale elemento deve essere posizionato davanti o dietro altri elementi).
Un elemento può avere un ordine verticale positivo o negativo:
Un elemento con ordine verticale maggiore è sempre davanti agli elementi con ordine verticale minore.
Commento: Se due elementi posizionati si sovrappongono e non viene specificato alcun ordine verticale, l'elemento che si trova più avanti nel codice HTML verrà mostrato in alto.
Altri esempi |
Impostazione della forma dell'elemento
Questo esempio dimostra come definire la forma di un elemento. L'elemento viene ritagliato su questa forma e quindi visualizzato.
Come mostrare un elemento in overflow utilizzando lo scorrimento
Questo esempio dimostra come impostare la proprietà overflow per creare una barra di scorrimento quando il contenuto dell'elemento è troppo grande per rientrare nell'area specificata.
Come forzare il browser a gestire automaticamente l'overflow
Questo esempio dimostra come forzare il browser a gestire automaticamente l'overflow.
Cambio del cursore
Questo esempio dimostra come modificare il cursore.
Tutte le proprietà di posizionamento CSS
Il numero nella colonna "CSS" indica in quale versione di CSS è definita la proprietà (CSS1 o CSS2).
Proprietà | Descrizione | Valori | CSS |
---|---|---|---|
IN Linguaggio HTML Tutti gli elementi possono essere divisi in blocchi e in linea. Gli elementi blocco sono solitamente rappresentati come aree rettangolari con una certa quantità di informazioni. Con il loro aiuto, viene costruita la griglia della pagina. Tali elementi occupano tutto lo spazio a loro disposizione in larghezza e di solito c'è un'interruzione di riga prima e dopo di essi. Ai blocchi possono essere assegnati rientri e dimensioni orizzontali e verticali.
Caratteristiche degli elementi a blocchi
I tag di blocco includono tag che vengono evidenziati un gran numero di informazioni di testo: