Molto spesso il compito è allineare un blocco al centro della pagina/schermo, e anche senza uno script Java, senza impostare dimensioni rigide o rientri negativi, e in modo che le barre di scorrimento funzionino per il genitore se il blocco supera le sue dimensioni . Ci sono molti esempi monotoni su Internet su come allineare un blocco al centro dello schermo. Di norma, la maggior parte di essi si basa sugli stessi principi.

Di seguito sono riportati i principali modi per risolvere il problema, i loro pro e contro. Per comprendere l'essenza degli esempi, consiglio di ridurre l'altezza/larghezza della finestra dei risultati negli esempi ai collegamenti forniti.

Opzione 1: rientro negativo.

Posizionamento bloccare utilizzando gli attributi top e left del 50% e conoscendo in anticipo l'altezza e la larghezza del blocco, imposta un margine negativo, che è uguale alla metà della dimensione bloccare. Un enorme svantaggio di questa opzione è che è necessario contare i rientri negativi. Anche bloccare non si comporta correttamente quando è circondato da barre di scorrimento: viene semplicemente tagliato perché ha margini negativi.

Genitore ( larghezza: 100%; altezza: 100%; posizione: assoluta; superiore: 0; sinistra: 0; overflow: automatico; ) .block ( larghezza: 250px; altezza: 250px; posizione: assoluta; superiore: 50%; sinistra : 50%; margine: -125px 0 0 -125px img (larghezza massima: 100%; altezza: automatica; visualizzazione: blocco; margine: 0 automatico; bordo: nessuno; ) )

Opzione 2. Rientro automatico.

Meno comune, ma simile al primo. Per bloccare impostiamo larghezza e altezza, posizioniamo gli attributi in alto a destra in basso a sinistra su 0 e impostiamo il margine automatico. Il vantaggio di questa opzione è il funzionamento delle barre di scorrimento genitore, se quest'ultimo ha larghezza e altezza al 100%. Lo svantaggio di questo metodo è l'impostazione rigida delle dimensioni.

Genitore ( larghezza: 100%; altezza: 100%; posizione: assoluta; superiore: 0; sinistra: 0; overflow: automatico; ) .block ( larghezza: 250px; altezza: 250px; posizione: assoluta; superiore: 0; destra: 0; inferiore: 0; sinistra: 0; margine: automatico; img (larghezza massima: 100%; altezza: automatico; blocco; margine: 0 automatico; bordo: nessuno; )

Opzione 3. Tabella.

Chiediamo genitore stili di tabella, cella genitore Imposta l'allineamento del testo al centro. UN bloccare impostiamo il modello di blocco di linea. Gli svantaggi che otteniamo sono le barre di scorrimento che non funzionano e, in generale, l'estetica dell'"emulazione" della tabella non è buona.

Genitore ( larghezza: 100%; altezza: 100%; visualizzazione: tabella; posizione: assoluta; superiore: 0; sinistra: 0; > .inner ( visualizzazione: tabella-cella; allineamento testo: centro; allineamento verticale: centro; ) ) .block ( display: inline-block; img ( display: block; bordo: none; ) )

Per aggiungere una pergamena a questo esempio, dovrai aggiungere un altro elemento al design.
Esempio: jsfiddle.net/serdidg/fk5nqh52/3.

Opzione 4. Pseudoelemento.

Questa opzione è priva di tutti i problemi elencati nei metodi precedenti e risolve anche i problemi originali. Il punto è questo genitore impostare gli stili pseudoelemento prima, vale a dire altezza al 100%, allineamento al centro e modello a blocchi in linea. È lo stesso con bloccare viene posizionato un modello di blocco di linea, centrato. A bloccare non è "caduto" sotto pseudoelemento, quando le dimensioni del primo sono maggiori di genitore, indicare genitore spazio bianco: nowrap e dimensione carattere: 0, dopodiché bloccare cancella questi stili con quanto segue: spazio bianco: normale. In questo esempio, è necessario font-size: 0 per rimuovere lo spazio risultante in mezzo genitore E bloccare a causa della formattazione del codice. Lo spazio può essere rimosso in altri modi, ma si ritiene meglio semplicemente evitarlo.

Genitore ( larghezza: 100%; altezza: 100%; posizione: assoluta; superiore: 0; sinistra: 0; overflow: automatico; spazio bianco: nowrap; allineamento testo: centro; dimensione carattere: 0; &:prima ( altezza: 100%; visualizzazione: blocco in linea; allineamento verticale: centro; contenuto: "";

Oppure, se hai bisogno che il genitore occupi solo l'altezza e la larghezza della finestra e non l'intera pagina:

Parent ( posizione: fissa; superiore: 0; destra: 0; inferiore: 0; sinistra: 0; overflow: automatico; spazio bianco: nowrap; allineamento testo: centro; dimensione carattere: 0; &:prima ( altezza: 100%; visualizzazione: blocco in linea; allineamento verticale: centro; contenuto: ""; (visualizzazione: blocco; bordo: nessuno;)

Opzione 5. Flexbox.

Uno dei modi più semplici ed eleganti è utilizzare flexbox. Non richiede movimenti del corpo non necessari, descrive chiaramente l'essenza di ciò che sta accadendo ed è altamente flessibile. L'unica cosa che vale la pena ricordare quando si sceglie questo metodo è il supporto per IE dalla versione 10 inclusa. caniuse.com/#feat=flexbox

Genitore ( larghezza: 100%; altezza: 100%; posizione: fissa; superiore: 0; sinistra: 0; display: flessibile; allinea-elementi: centro; allinea-contenuto: centro; giustifica-contenuto: centro; overflow: automatico; ) .block ( sfondo: #60a839; img ( display: blocco; bordo: nessuno; ) )

Opzione 6. Trasforma.

Adatto se siamo limitati dalla struttura e non c'è modo di manipolare l'elemento genitore, ma il blocco deve essere allineato in qualche modo. La funzione css Translate() verrà in soccorso. Un valore di posizionamento assoluto del 50% posizionerà l'angolo superiore sinistro del blocco esattamente al centro, quindi un valore di traslazione negativo sposterà il blocco rispetto alle sue stesse dimensioni. Tieni presente che gli effetti negativi potrebbero apparire sotto forma di bordi sfocati o stile del carattere. Inoltre, questo metodo può portare a problemi nel calcolo della posizione del blocco utilizzando Java-Script. A volte, per compensare la perdita del 50% della larghezza dovuta all'uso della proprietà CSS left, la regola specificata per il blocco può. aiuto: margine destro: -50%;

Parent ( larghezza: 100%; altezza: 100%; posizione: fissa; superiore: 0; sinistra: 0; overflow: automatico; ) .block ( posizione: assoluta; superiore: 50%; sinistra: 50%; trasformazione: Translate( -50%, -50%); img (visualizza: blocco;))

Opzione 7. Pulsante.

Opzione azproduzione utente dove bloccare incorniciato in un tag pulsante. Il pulsante ha la proprietà di centrare tutto ciò che si trova al suo interno, ovvero gli elementi del modello inline e block-line (inline-block). In pratica non consiglio di usarlo.

Genitore ( larghezza: 100%; altezza: 100%; posizione: assoluta; superiore: 0; sinistra: 0; overflow: automatico; sfondo: nessuno; bordo: nessuno; contorno: nessuno; ) .block ( display: inline-block; img (display: blocco;; bordo: nessuno; ) )

Bonus

Usando l'idea della quarta opzione, puoi impostare i margini esterni per bloccare, e quest'ultimo verrà adeguatamente visualizzato circondato da barre di scorrimento.
Esempio: jsfiddle.net/serdidg/nfqg9rza/2.

Puoi anche allineare l'immagine al centro e se l'immagine è più grande genitore, ridimensionalo genitore.
Esempio: jsfiddle.net/serdidg/nfqg9rza/3.
Esempio con un'immagine grande:

Allinea il testo verticalmente nei CSS- un lavoro molto difficile. Ho visto abbastanza persone lottare con questo problema da trovare costantemente errori "critici" quando si tratta di design reattivo vero e proprio.

Ma non temere: se hai già difficoltà con l'allineamento verticale dei CSS, sei nel posto giusto.

Parliamo della proprietà di allineamento verticale dei CSS

Quando ho iniziato a lavorare nello sviluppo web, ho avuto qualche difficoltà con questa proprietà. Ho pensato che dovesse funzionare come una proprietà classica" allineamento del testo" Oh, se solo fosse tutto così semplice...

proprietà CSS di allineamento verticale funziona benissimo con le tabelle, ma non con div o altri elementi. Quando lo usi su un div, allinea l'elemento rispetto ad altri div, ma non il suo contenuto. In questo caso la proprietà funziona solo con display: inline-block; .

Vedi esempio

Vogliamo centrare il contenuto, non il div stesso!

Hai due opzioni. Se hai solo elementi div con testo, puoi utilizzare la proprietà line-height. Ciò significa che è necessario conoscere l'altezza dell'elemento, ma non è possibile impostarla. In questo modo il tuo testo sarà sempre al centro.

La verità su questo approccio Allineamento verticale CSS c'è uno svantaggio. Se il testo è su più righe, l'altezza della riga verrà moltiplicata per il numero di righe. Molto probabilmente, in questo caso, ti ritroverai con una pagina strutturata in modo terribile.

Dai un'occhiata a questo esempio

Se il contenuto che desideri centrare è costituito da più di una riga, è meglio utilizzare i div della tabella. Puoi anche usare le tabelle, ma questo non è semanticamente corretto. Se hai bisogno di pause per scopi reattivi, è meglio usare gli elementi div.

Affinché funzioni, deve essere presente un contenitore principale con display: table e al suo interno il numero desiderato di colonne che si desidera centrare utilizzando display: table-cell e vertical-align: middle .

Vedi esempio

Perché funziona con il markup della tabella ma non con gli elementi div? Perché le righe nella tabella hanno la stessa altezza. Quando il contenuto di una cella di tabella non utilizza tutto lo spazio in altezza disponibile, il browser aggiunge automaticamente la spaziatura verticale per centrare il contenuto.

proprietà di posizione

Cominciamo con le basi dell'allineamento verticale dei div CSS:

  • posizione: statica è l'impostazione predefinita. L'elemento viene visualizzato in base all'ordine HTML;
  • posizione: assoluta - utilizzata per determinare la posizione esatta di un elemento. Questa posizione è sempre correlata all'elemento genitore posizionato relativamente più vicino (not statico). Se non determini la posizione esatta di un elemento, ne perderai il controllo. Apparirà in modo casuale, ignorando completamente il flusso del documento. Per impostazione predefinita, l'elemento viene visualizzato nell'angolo in alto a sinistra;
  • posizione: relativa - utilizzata per posizionare un elemento rispetto alla sua posizione normale (statica). Questo valore preserva l'ordine del flusso dei documenti;
  • posizione: fissa - utilizzata per posizionare l'elemento rispetto alla finestra del browser in modo che sia sempre visibile nel viewport.

Nota: alcune proprietà ( top e z-index) funzionano solo se l'elemento è impostato su position (not statico).

Mettiamoci al lavoro!

Vuoi implementare Allineamento centrale verticale CSS? Per prima cosa crea un elemento con posizione e dimensioni relative. Ad esempio: 100% in larghezza e altezza.

Il secondo passaggio può variare a seconda dei browser di destinazione, ma puoi utilizzare una delle due opzioni:

  • Vecchia proprietà: è necessario conoscere la dimensione esatta della finestra per rimuovere metà della larghezza e metà dell'altezza. Vedi esempio;
  • Nuova proprietà CSS3: puoi aggiungere una proprietà di trasformazione con un valore di traduzione del 50% e il blocco sarà sempre al centro. Visualizza esempio.

Fondamentalmente, se vuoi centrare i contenuti, non usare mai la parte superiore: 40% o sinistra: 300px . Funziona bene sulle schermate di prova, ma non è centrato.

Ricorda posizione: fissa? Puoi fare la stessa cosa che con una posizione assoluta, ma non hai bisogno di una posizione relativa per l'elemento genitore: sarà sempre posizionato rispetto alla finestra del browser.

Hai sentito parlare delle specifiche flexbox?

Puoi usare Flexbox. Questo è molto meglio di qualsiasi altra opzione centrare l'allineamento del testo CSS verticalmente. Con flexbox la gestione degli elementi è come un gioco da ragazzi. Il problema è che devi scartare alcuni browser come IE9 e le versioni seguenti. Ecco un esempio di come centrare verticalmente un blocco:

Visualizza esempio

Utilizzando un layout flexbox, puoi centrare più blocchi.

Se applichi ciò che impari da questi esempi, puoi padroneggiarlo Allineamento verticale dei blocchi CSS appena possibile.

Link e approfondimenti

Imparare il markup CSS

FlexBoxFroggy

Sabbiera Flexbox

Traduzione dell’articolo “ Allineamento verticale CSS per tutti (manichini inclusi)" è stato preparato dal simpatico team di progetto.

Buona giornata, abbonati e lettori di questa pubblicazione. Oggi voglio entrare nel dettaglio e raccontarti come centrare il testo nei CSS. In alcuni articoli precedenti ho toccato indirettamente questo argomento, quindi hai una certa conoscenza in questo settore.

Tuttavia, in questa pubblicazione ti parlerò di tutti i diversi modi per allineare gli oggetti e spiegherò anche come rientrare e annotare i paragrafi. Quindi iniziamo a imparare il materiale!

HTML e i suoi derivati
e allineare

Questo metodo non viene quasi mai utilizzato, poiché è stato sostituito da strumenti per fogli di stile a cascata. Tuttavia, sapere che esiste un tag del genere non ti farà male.

Per quanto riguarda la convalida (questo termine è descritto in dettaglio nell'articolo ""), la stessa specifica html ne condanna l'utilizzo < centro>, poiché per la validità è necessario utilizzare una transizione DOCTYPE>.

Questo tipoconsente il passaggio di elementi proibiti.

CENTRO



Passiamo ora all'attributo allineare. Imposta l'allineamento orizzontale degli oggetti e si inserisce dopo la dichiarazione del tag. In genere, può essere utilizzato per allineare il contenuto a sinistra ( Sinistra), lungo il bordo destro ( Giusto), centrato ( centro) e per larghezza del testo ( giustificare).

Di seguito fornirò un esempio in cui posizionerò l'immagine e il paragrafo al centro.

allineare

Questo contenuto sarà centrato.



Tieni presente che per l'immagine l'attributo che stiamo analizzando ha significati leggermente diversi.

Nell'esempio che ho usato allinea="mezzo". Grazie a questo, l'immagine è stata allineata in modo che la frase si trovasse chiaramente al centro dell'immagine.

Strumenti di centratura nei css

Le proprietà CSS progettate per allineare blocchi, testo e contenuto grafico vengono utilizzate molto più spesso. Ciò è dovuto principalmente alla comodità e alla flessibilità degli stili di implementazione.

Cominciamo quindi con la prima proprietà di centratura del testo: questa è testo-allineare.

Funziona allo stesso modo di allinea in . Tra le parole chiave è possibile selezionarne una dall'elenco generale o ereditare le caratteristiche di un antenato ( ereditare).

Vorrei sottolineare che in css3 è possibile impostare altri 2 parametri: inizio– a seconda delle regole di scrittura del testo (da destra a sinistra o viceversa), imposta l'allineamento a sinistra o a destra (simile al lavoro a sinistra o a destra) e FINE– il contrario di inizio (quando si scrive il testo da sinistra a destra funziona come destra, quando si scrive da destra a sinistra – sinistra).

allineamento del testo

Frase a destra

Frase che utilizza end



Ti parlerò di un piccolo trucco. Quando si seleziona un valore giustificare l'ultima linea potrebbe penzolare in modo poco attraente dal fondo. Per posizionarlo, ad esempio, al centro, è possibile utilizzare la proprietà allineamento-testo-ultimo.

Per allineare verticalmente il contenuto del sito o le celle della tabella, utilizzare la proprietà allineamento verticale. Di seguito ho descritto le principali parole chiave dell'elemento.

Parola chiave Scopo
linea di base Specifica l'allineamento a una linea antenata, denominata linea di base. Se l'oggetto antenato non dispone di tale linea, l'allineamento avviene lungo il bordo inferiore.
mezzo Il centro dell'oggetto mutato è allineato alla linea di base, alla quale viene aggiunto l'altezza del pavimento dell'elemento genitore.
metter il fondo a La parte inferiore del contenuto selezionato si adatta alla parte inferiore dell'oggetto sottostante.
superiore Simile al fondo, ma con la parte superiore dell'oggetto.
super Rende il carattere in apice.
sub Rende l'elemento pedice.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 allineamento verticale
C IN E TDIA


allineamento verticale

C IN E TDIA


Rientranze

E finalmente arriviamo ai rientri dei paragrafi. Il linguaggio CSS utilizza una proprietà speciale chiamata rientro del testo.

Con il suo aiuto puoi creare sia una linea rossa che una sporgenza (è necessario specificare un valore negativo).

rientro del testo

Per creare una linea rossa devi conoscere solo un parametro.

Questa è la semplice proprietà text-indent.



Lodo coloro che hanno provato ogni esempio nella pratica. Invia link al mio blog ai tuoi amici e non dimenticare di iscriverti. Buona fortuna! Ciao ciao!

Cordiali saluti, Roman Chueshov

Leggere: 675 volte

I web designer utilizzano i DIV nel loro lavoro ogni giorno. Senza alcun eufemismo, questo è il tag più popolare. Apri il sorgente di qualsiasi sito web e vedrai che la maggior parte, se non i due terzi degli oggetti, sono racchiusi al suo interno

. Anche con l'avvento di HTML5 e l'emergere di seri concorrenti sotto forma di articolo o intestazione, continua ad essere inserito nel markup ovunque. Pertanto, ti suggerisco di comprendere il problema della formattazione e della centratura dei blocchi div.

Cos'è il DIV

Il nome dell'elemento deriva dalla parola inglese division, che significa divisione. Quando si scrive markup, viene utilizzato per suddividere gli elementi in blocchi. I DIV racchiudono gruppi di contenuti in una pagina web. Ad esempio, immagini, paragrafi con testo. Il tag non influisce in alcun modo sulla visualizzazione del contenuto e non comporta alcun carico semantico.

DIV supporta tutti gli attributi globali. Ma per il web design ne servono solo due: class e id. Ti ricorderai di tutti gli altri solo in casi esotici, e questo non è un dato di fatto. L'attributo align, precedentemente utilizzato per centrare o allineare a sinistra i div, è stato deprecato.

Quando utilizzare i DIV

Immagina che il sito sia un frigorifero e che i DIV siano contenitori di plastica in cui devi ordinare il contenuto. Non metteresti la frutta nello stesso contenitore con la salsiccia di fegato. Posizionarai ciascun tipo di prodotto separatamente. Il contenuto Web viene generato in modo simile.

Apri qualsiasi sito Web e dividilo in blocchi significativi. Intestazione in alto, piè di pagina in basso, testo principale al centro. A lato si trova solitamente una colonna più piccola con contenuti pubblicitari o una tag cloud.

Documento



Ora guarda ogni sezione in modo più dettagliato. Inizia con l'intestazione. L'intestazione del sito ha un logo separato, una navigazione, un'intestazione di primo livello e talvolta uno slogan. Assegna a ciascun blocco semantico il proprio contenitore. Ciò non solo separerà gli elementi nel flusso, ma li renderà anche più facili da formattare. Troverai molto più semplice centrare un oggetto in un tag DIV assegnandogli una classe o un ID.

Centratura dei DIV utilizzando i margini

Durante il rendering degli elementi web, il browser considera tre proprietà: riempimento, margine e bordo. Il riempimento è lo spazio tra il contenuto e il suo bordo. Margine: campi che separano un oggetto da un altro. Il confine sono le linee lungo i blocchi. Possono essere assegnati a tutti contemporaneamente o solo a un lato:

div( border: 1px solido #333; border-left: none; )

Queste proprietà aggiungono spazio tra gli oggetti e ti aiutano ad allinearli e posizionarli correttamente. Ad esempio, se un blocco con un'immagine deve essere spostato dal bordo sinistro al centro del 20%, assegni un valore di margine sinistro del 20% all'elemento:

Blocca con immagine(margine sinistro: 20%;)

Gli elementi possono anche essere formattati utilizzando i valori di larghezza e il riempimento negativo. Ad esempio, esiste un blocco con dimensioni 200px per 200px. Per prima cosa assegniamogli una posizione assoluta e spostiamolo al centro del 50%.

Div( posizione: assoluta; sinistra: 50%; )

Adesso, per fare in modo che il DIV centrato sia posizionato perfettamente, diamogli un margine negativo a sinistra pari al 50% della sua larghezza, ovvero -100 pixel:

Margine sinistro: -100px;

Nei CSS questo si chiama "rimozione dell'aria". Ma presenta uno svantaggio significativo nella necessità di effettuare calcoli costanti, cosa abbastanza difficile da fare per elementi con diversi livelli di nidificazione. Se vengono specificati i valori di riempimento e larghezza del bordo, il browser calcolerà per impostazione predefinita le dimensioni del contenitore come somma dello spessore dei bordi, del riempimento a destra e a sinistra e del contenuto stesso all'interno, che può arriva anche come una sorpresa.

Pertanto, quando è necessario centrare un DIV, utilizzare la proprietà box-sizing con il valore border-box. Ciò impedirà al browser di aggiungere valori di riempimento e bordo alla larghezza complessiva dell'elemento DIV. Per alzare o abbassare un elemento, utilizzare anche valori negativi. Ma in questo caso possono essere assegnati al campo superiore o inferiore del contenitore.

Come centrare un blocco DIV utilizzando i margini automatici

Questo è un modo semplice per centrare blocchi di grandi dimensioni. Assegni semplicemente la larghezza del contenitore e la proprietà margin ad auto. Il browser posizionerà un blocco al centro con margini uguali a sinistra e a destra, facendo tutto il lavoro da solo. Di conseguenza, non rischi di confonderti nei calcoli matematici e risparmi notevolmente tempo.

Utilizza il metodo del campo automatico durante lo sviluppo di app reattive. La cosa principale è assegnare un valore di larghezza al contenitore in em o percentuale. Il codice dell'esempio sopra centra il DIV e su qualsiasi dispositivo, cellulari compresi, occuperà il 90% dello schermo.

Allineamento tramite proprietà di visualizzazione: blocco in linea

Per impostazione predefinita, gli elementi DIV sono considerati elementi blocco e il loro valore visualizzato è blocco. Per questo metodo sarà necessario sovrascrivere questa proprietà. Adatto solo per DIV con un contenitore principale:

Qualsiasi testo

A un elemento con la classe outside-div viene assegnata una proprietà di allineamento del testo con un valore center, che centra il testo all'interno. Ma per ora il browser vede il DIV nidificato come un oggetto blocco. Affinché la proprietà text-align funzioni, il div interno deve essere trattato come minuscolo. Quindi nella tabella CSS per il selettore inner-div scrivi il seguente codice:

Div interno( display: blocco in linea; )

Si modifica la proprietà di visualizzazione da blocco a blocco in linea.

metodo di trasformazione/traduzione

I fogli di stile a cascata consentono di spostare, inclinare, ruotare e trasformare in altro modo gli elementi Web a piacimento. A questo scopo viene utilizzata la proprietà di trasformazione. I valori indicano il tipo e il grado di trasformazione desiderati. In questo esempio lavoreremo con Translate:

trasformazione: traduci(50%, 50%);

La funzione di traduzione sposta un elemento dalla sua posizione corrente a sinistra/destra e su/giù. Due valori vengono passati tra parentesi:

  • grado di movimento orizzontale;
  • grado di movimento verticale.

Se un elemento deve essere spostato lungo solo uno degli assi delle coordinate, dopo la parola traslare indicare il nome dell'asse e tra parentesi l'entità dello spostamento richiesto:

Trasforma: traduciY(-20%);

In alcuni manuali puoi trovare la trasformazione con i prefissi del fornitore:

Trasformazione Webkit: Translate(50%, 50%); -ms-transform: traduci(50%, 50%); trasformare: tradurre(50%, 50%);

Nel 2018 questo non è più necessario; la proprietà è supportata da tutti i browser, compresi Edge e IE.

Per centrare il DIV che vogliamo, la funzione di traduzione CSS viene scritta con un valore del 50% per l'asse verticale e orizzontale. Ciò farà sì che il browser scosti l'elemento dalla sua posizione corrente della metà della sua larghezza e altezza. Le proprietà larghezza e altezza devono essere specificate:

Documento



Tieni presente che l'elemento a cui viene applicata la proprietà di trasformazione si muove indipendentemente dagli oggetti che lo circondano. Da un lato questo è conveniente, ma a volte spostandosi il DIV può sovrapporsi a un altro contenitore. Pertanto, questo metodo di centratura dei componenti web è considerato non standard e viene utilizzato solo in casi di estrema necessità. Per l'animazione vengono utilizzate trasformazioni secondo tutti i canoni CSS.

Lavorare con il layout Flexbox

Flexbox è considerato un modo sofisticato per progettare layout web. Ma se lo padroneggi, ti renderai conto che è molto più semplice e piacevole dei metodi di formattazione standard. La specifica Flexbox è un modo flessibile e incredibilmente potente per gestire gli elementi. Il nome del modulo è tradotto dall'inglese come “contenitore flessibile”. I valori di larghezza, altezza e disposizione degli elementi vengono regolati automaticamente, senza calcolare rientri e margini.

Negli esempi precedenti, abbiamo già lavorato con la proprietà display, ma l'abbiamo impostata su valori di blocco e blocco in linea. Per creare layout flessibili utilizzeremo display: flex. Per prima cosa abbiamo bisogno di un contenitore flessibile:



Per convertirlo in un contenitore flessibile in tabelle a cascata, scriviamo:

Contenitore flessibile( display: flex; )

Tutti gli oggetti nidificati, ma solo i discendenti diretti, saranno elementi flessibili:

Primo
Secondo
Terzo
Quarto


Se inserisci un elenco all'interno di un contenitore flessibile, gli elementi dell'elenco li non sono considerati elementi flessibili. Il layout Flexbox funzionerà solo su ul:

Regole per il posizionamento degli elementi flessibili

Per gestire gli elementi flessibili, sono necessari giustifica-contenuto e allinea-elementi. A seconda dei valori specificati, queste due proprietà posizionano automaticamente gli oggetti secondo necessità. Se abbiamo bisogno di centrare tutti i DIV nidificati, scriviamo giustifica-content: center, align-items: center e nient'altro. Il browser farà il resto del lavoro da solo:

Documento

Primo
Secondo
Terzo
Quarto


Per centrare il testo sui DIV che sono elementi flessibili, puoi utilizzare la tecnica standard di allineamento del testo. Oppure puoi rendere ogni DIV nidificato anche un contenitore flessibile e gestire il contenuto utilizzando aware-content. Questo metodo è molto più razionale se contiene una varietà di contenuti, inclusi grafici, altri oggetti nidificati, inclusi elenchi a più livelli.

Dall'autore: Ti do nuovamente il benvenuto sulle pagine del nostro blog. Nell'articolo di oggi vorrei parlare di varie tecniche di allineamento che possono essere applicate sia ai blocchi che al loro contenuto. In particolare, come allineare i blocchi nei CSS e come allineare il testo.

Allineamento dei blocchi al centro

Nei CSS, centrare un blocco è facile. Questa è la tecnica più conosciuta da molti, ma vorrei parlarne subito, prima di tutto. Ciò significa un allineamento centrato orizzontalmente rispetto all'elemento genitore. Come è fatto? Diciamo che abbiamo un contenitore e al suo interno si trova il nostro soggetto sperimentale:

< div id = "wrapper" >

< div id = "header" > < / div >

< / div >

Supponiamo che questa sia l'intestazione del sito. Non si estende per tutta la larghezza della finestra e dobbiamo centrarlo. Scriviamo così:

#intestazione(

larghezza/larghezza massima: 800px;

margine: 0 automatico;

Dobbiamo specificare la larghezza esatta o massima, quindi annotare la proprietà chiave - margin: 0 auto. Imposta i margini esterni della nostra intestazione, il primo valore determina i margini superiore e inferiore e il secondo determina i margini destro e sinistro. Il valore auto dice al browser di calcolare automaticamente il riempimento su entrambi i lati in modo che l'elemento sia esattamente centrato sul suo genitore. Comodo!

Allineamento del testo

Anche questa è una tecnica molto semplice. Per allineare tutti gli elementi in linea, puoi utilizzare la proprietà text-align e i suoi valori: sinistra, destra, centro. Quest'ultimo centra il testo, che è ciò di cui abbiamo bisogno. Puoi anche allineare un'immagine allo stesso modo, perché per impostazione predefinita è anche un elemento in linea.

Allinea il testo verticalmente

Ma questo è più complicato. Per impostazione predefinita, non esiste una proprietà semplice e conosciuta che centra facilmente il testo verticalmente in un contenitore di blocchi. Tuttavia, ci sono diverse tecniche che i progettisti di layout hanno messo a punto nel corso degli anni.

Imposta l'altezza del blocco utilizzando il riempimento. Il modo non è impostare un'altezza esplicita utilizzando altezza, ma crearla artificialmente utilizzando i riempimenti in alto e in basso, che dovrebbero essere gli stessi. Creiamo un blocco qualsiasi e scriviamoci le seguenti proprietà:

div( sfondo: #ccc; riempimento: 30px 0; )

div(

sfondo: #ccc;

imbottitura: 30px 0;

Lo sfondo serve solo a mostrare visivamente i bordi e l'imbottitura. Ora l'altezza del blocco è composta da questi due rientri e dalla linea stessa, e il tutto assomiglia a questo:

Definire l'altezza della linea per il blocco. Penso che questo sia il modo più corretto se devi allineare una riga di testo. Con esso puoi scrivere l'altezza normalmente, usando la proprietà altezza. Successivamente, deve anche impostare l'altezza della linea, uguale all'altezza del blocco nel suo complesso.

div( altezza: 60px; altezza linea: 60px; )

div(

altezza: 60px;

altezza della linea: 60px;

Il risultato sarà simile all'immagine sopra. Tutto funzionerà anche se aggiungi il riempimento. Tuttavia, solo per una riga. Se hai bisogno di più testo nell'elemento, questo metodo non funzionerà.

Converti un blocco in una cella di tabella. L'essenza di questo metodo è che la cella della tabella ha la proprietà vertical-align: middle, che centra l'elemento verticalmente. Di conseguenza, in questo caso il blocco deve essere impostato come segue:

div( display: tabella-cella; allineamento verticale: centro; )

div(

visualizzazione: tabella - cella;

allineamento verticale: medio;

Questo metodo è utile perché puoi allineare tutto il testo che desideri al centro. Ma è meglio scrivere display: table nel blocco in cui è annidato il nostro div, altrimenti potrebbe non funzionare.

Bene, eccoci all'ultima tecnica per oggi: questo è l'allineamento verticale dei blocchi stessi. Va detto che, ancora una volta, non esiste alcuna proprietà specificatamente destinata a questo, ma ci sono alcuni trucchi di cui dovresti essere a conoscenza.

Imposta i rientri come percentuale. Se conosci l'altezza di un elemento genitore e inserisci un altro elemento blocco al suo interno, puoi centrarlo utilizzando il riempimento percentuale. Ad esempio, il genitore ha un'altezza di 600 pixel. Inserisci un blocco alto 300 pixel. Quanto è necessario arretrare in alto e in basso per centrarlo? 150 pixel ciascuno, ovvero il 25% dell'altezza del genitore.

Questo metodo consente l'allineamento solo quando le dimensioni consentono i calcoli. E se il tuo genitore ha un'altezza di 887 pixel, non sarai in grado di registrare nulla con precisione, questo è già chiaro.

Inserisci un elemento in una cella della tabella. Ancora una volta, se trasformiamo l'elemento genitore in una cella di tabella, allora il blocco inserito al suo interno verrà automaticamente centrato verticalmente. Per fare ciò, il genitore deve solo impostare vertical-align: middle.

E se oltre a questo scriviamo anche margin: 0 auto, allora l'elemento diventerà centrato orizzontalmente!



Questo articolo è disponibile anche nelle seguenti lingue: tailandese

  • Prossimo

    GRAZIE mille per le informazioni molto utili contenute nell'articolo. Tutto è presentato in modo molto chiaro. Sembra che sia stato fatto molto lavoro per analizzare il funzionamento del negozio eBay

    • Grazie a te e agli altri lettori abituali del mio blog. Senza di te, non sarei abbastanza motivato da dedicare molto tempo al mantenimento di questo sito. Il mio cervello è strutturato in questo modo: mi piace scavare in profondità, sistematizzare dati sparsi, provare cose che nessuno ha mai fatto prima o guardato da questa angolazione. È un peccato che i nostri connazionali non abbiano tempo per fare acquisti su eBay a causa della crisi in Russia. Acquistano da Aliexpress dalla Cina, poiché le merci sono molto più economiche (spesso a scapito della qualità). Ma le aste online eBay, Amazon, ETSY daranno facilmente ai cinesi un vantaggio nella gamma di articoli di marca, articoli vintage, articoli fatti a mano e vari articoli etnici.

      • Prossimo

        Ciò che è prezioso nei tuoi articoli è il tuo atteggiamento personale e l'analisi dell'argomento. Non mollare questo blog, ci vengo spesso. Dovrebbero essere in molti così. Inviami un'e-mail Recentemente ho ricevuto un'e-mail con un'offerta che mi avrebbero insegnato come fare trading su Amazon ed eBay.

  • E mi sono ricordato dei tuoi articoli dettagliati su questi mestieri. zona Ho riletto tutto di nuovo e ho concluso che i corsi sono una truffa. Non ho ancora comprato nulla su eBay. Non vengo dalla Russia, ma dal Kazakistan (Almaty). Ma non abbiamo ancora bisogno di spese aggiuntive.
    Ti auguro buona fortuna e resta al sicuro in Asia.