Allineamento verticale centrato con i css

Nel tentativo di seguire la tendenza che suggerisce la creazione di siti web “tableless” mi sono ritrovato con un banalissimo problema che mi ha fatto perdere un sacco di tempo.

Il comportamento di default di una tabella con una cella (TD) con altessa fissa prevede il posizionamento del testo centrato

testo di prova

cosa che come possiamo vedere è diverso se utilizziamo il tag DIV

testo di prova

Per ottenere lo stesso risultato dobbiamo ricorre ad una serie di piccoli accorgimenti che vedo ad illustravi:

Ho creato una classe “wrapper” (contenitore) con posizionamento relativo e dimensioni fisse (height e width) .
Poi una classe “element” con posizionamento assoluto dove la distanza superiore dal suo contenitore è indicata al 50%, inoltre ho dovuto specificare un margine negativo che dovrebbe essere la meta dell’altezza della riga

testo di prova

A seguire le specifiche nel caso dove al posto dell’elemento SPAN avessimo necessità di un ulteriore elemento DIV ad altezza fissa

Questo è il risultato:
Il box rosso è il DIV contenitore (classe wrapper) mentre il box verde è il DIV interno (classe box) il quale a sua volta contiene un tag SPAN ( class element ) con il testo visualizzato

testo di prova

In casi come questi, mi chiedo se il “non utilizzare” in modo assoluto le tabelle abbia sempre dei vantaggi ..
Ma vediamo il lato positivo: “abbiamo imparato una cosa nuova

Questo piccolo esperimento è ispirato a questo interessantissimo articolo dove sono presentate anche altre tecniche che però non garantiscono la stessa compatibilità.

5 commenti

  1. insomma i css tanto belli e tanto cari poi non c’è modo di allineare verticalmente la roba?!? ma com’è possibile? che devo fare, continuo a usare le tabelle e tanti saluti agli standard ecc ecc?

  2. Bhe, sopra io ti ho presentato due soluzioni.
    Quello che posso dirti è che i vantaggi e la flessibilità offerta da un struttura tableless riesce a ripagarti anche in quelle volte in cui è necessario utilizzare delle tecniche “particolari”.
    Poi nulla ti vieta di usare css e tabelle nella stessa pagina.

  3. ciao Maurizio. è un post vecchissimo ma volevo sapere mi potevi dare una mano sull’allineamento verticale su il mio sito in progettazione.

Lascia una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *