Come terzo test sui form, si è scelto di modificare gli stili specifici per gli elementi
label ed input. Il codice
fino ad ora utilizzato è il seguente:
body {
margin: 0;
padding: 0;
background: #f8f8ee;
color: #000;
font: 76% Verdana, Geneva, Arial, Helvetica, sans-serif;
text-align: center;
}
form {
margin: 10em auto;
padding: 0;
width: 60%;
background: transparent;
text-align: left;
}
fieldset {
border: 1px solid #000;
margin-top: 16px;
padding: 10px;
}
legend {
font-weight: bold;
margin: 0;
padding: 0;
}
label, input.txt, input.bot {
margin: 5px 2px;
display: inline-block;
padding: 0;
vertical-align: middle;
}
label {
text-align: center;
}
input.txt {
background: #e3f2f7;
color: #000;
border: 1px inset #ccc;
}
input.bot {
background: #add8e6;
color: #000;
border: 1px outset #00008b;
}
div.centra {
margin: 1em;
padding: 0;
}
Come si evince dal codice, sono stati applicati dei nuovi stili agli elementi label ed input, ed è
anche stata aggiunta la classe .centra ad un contenitore generico.
Il form si presenta ora più allineato rispetto al precedente esempio.
Permangono tuttavia delle differenze tra i vari browser:
fieldset, che risulta essere più pronunciato in Internet Explorer
ed in Opera rispetto a quanto avviene in Firefox..centra, usata per definire il posizionamento. Si noti come in teoria
la marginazione applicata a .centra e ad input avrebbe dovuto garantire una certa uniformità in tal senso. Questo è valido per Firefox ed Opera, ma non per Internet
Explorer, che posiziona il submit più a destra rispetto ai sopracitati browser.inline-block ed assegnando loro
la proprietà vertical-align. La semplice dichiarazione di inline non era sufficiente per Opera, che continuava ad allineare il testo di label
più in basso rispetto al campo di testo del vicino input. Tuttavia questo allineamento è supportato correttamente solo dalla versione 9 di Opera. Precedenti versioni
visualizzano il testo in alto.display è scaturita dalla lettura di
un post di
Alessandro Fulciniti.Come si addice all'aspetto ibrido del nome di valore inline-block, gli elementi inline-block sono un ibrido di elementi di blocco ed elementi inline. Questo valore di visualizzazione è una novità dei CSS 2.1.
Un elemento inline-block si mette in relazione con altri elementi e contenuti come un riquadro inline. In altre parole, è disposto in una riga di testo proprio come un'immagine, e di fatto gli elementi inline-block sono formattati all'interno di una riga come un elemento rimpiazzato.
Questo significa che la parte inferiore di un elemento inline-block si troverà sulla linea di base della riga di testo per impostazione predefinita, e non eseguirà alcuna interruzione di riga al suo interno.
- Eric A. Meyer -
Abbiamo visto come solo Opera 9 interpreti gli elementi label ed input come elementi
inline-block formattandoli come rimpiazzati e visualizzandoli correttamente. Firefox ed Internet Explorer sono
concordi nell'interpretarli come elementi inline.