CSS: layout dei documenti XML

I CSS possono gestire anche il layout dei documenti XML.

I CSS sono indipendenti dal tipo di linguaggio usato per la struttura dei documenti web e possono essere applicati anche a linguaggi diversi dall’(X)HTML. In questo articolo vedremo come applicare i CSS ai documenti XML.

Introduzione

Il linguaggio XML non ha elementi dalla visualizzazione predefinita, in quanto essi dipendono dalle scelte effettuate dall’autore. Quindi per formattare un documento XML è necessario assegnare ad ogni elemento un contesto di formattazione tramite la proprietà display. Fatto questo, possiamo applicare ai documenti XML quelle tecniche apprese in precedenza.

Per associare un foglio di stile CSS ad un documento XML si fa ricorso alla seguente dichiarazione (PI, Processing Instruction), posta all’inizio del documento XML, subito dopo il prologo:

Ovviamente il percorso del file cambia in base alla posizione in cui si trova il foglio di stile.

Un semplice layout

Partiamo da un documento XML di base:

Per comodità di lettura abbiamo usato alcuni nomi di elementi (X)HTML nel nostro documento. Tuttavia, come detto in precedenza, questi nomi di elemento non hanno alcun significato speciale o predefinito in XML. Per formattare il nostro documento dovremo ricorrere ai CSS:

(Vedi esempio)

Abbiamo assegnato dei ruoli di formattazione ai vari elementi tramite i valori della proprietà ‘display’. Da notare come l’elemento document svolga la funzione di elemento radice, coincidendo con l’area della finestra di visualizzazione.

Layout ad una colonna

Per creare un layout ad una colonna, il codice XML è il seguente:

E il CSS:

(Vedi esempio)

Possiamo anche aggiungere un box flottato, come mostrato da questo esempio:

(Vedi esempio)

Come si può notare dagli esempi, la formattazione segue strettamente le regole indicate nel foglio di stile.

Layout a due colonne

Liberi dai valori predefiniti dei browser, possiamo formattare gli elementi XML con maggiore libertà:

(Vedi esempio)

Abbiamo assegnato all’elemento page un’immagine di sfondo ripetuta in verticale per tracciare la colonna di sinistra. L’elemento box è stato fatto flottare a sinistra, e l’elemento content è stato posizionato tramite la marginazione. L’elemento footer ha ovviamente la dichiarazione ‘clear: left’.

Layout a tre colonne

Ecco come si presenta il codice XML per un layout a tre colonne:

Il relativo CSS:

(Vedi esempio)

Gli sfondi delle colonne vengono tracciati tramite le immagini di background degli elementi page e side, posizionate, rispettivamente, in alto a sinistra ed in alto a destra, e ripetute in verticale. Le colonne laterali sono state posizionate tramite il posizionamento assoluto, ed il contenuto principale tramite la marginazione orizzontale. L’ultima dichiarazione serve a risolvere un problema di spazio extra nella colonna di destra, che aveva un’altezza inferiore al dovuto.

Layout tabellari

I CSS sono in grado di ricreare un’impaginazione tabellare per la formattazione di dati XML. Spesso infatti i file XML contengono dei tipi di dati che per loro stessa natura andrebbero inseriti in tabelle. Possiamo usare i valori della proprietà ‘display’ relativi alle tabelle per ottenere l’effetto desiderato:

(Vedi esempio)

L’unica cosa da notare è che Firefox richiede la dichiarazione di margini orizzontali automatici per centrare il testo dell’elemento caption, mentre per Opera è sufficiente la sola dichiarazione ‘text-align: center’.