Innanzitutto questo è il bug di Firefox.
Comunque (in attesa che il bug venga risolto), ho risolto in un altro modo (usando sempre un'estensione di Firefox, purtroppo). Questo è l'HTML:
codice:
Flusso del testo <span class="inline_element"><span class="inline_element_text">Testo inline abbastanza lungo</span></span> flusso del testo...
Purtroppo occorre usare un'ulteriore elemento inline, che a volte può essere inutile (ma se dovete usare STRONG, siete fortunati, perché va bene uguale).
Il CSS è il seguente; la differenza rispetto a prima è l'estensione utilizzata per Firefox su .inline_element, e .inline_element_text che deve essere reso block (il text align si applica a lui):
codice:
.inline_element {
background-color:#FFFF99;
width: 80px;
/*allineamento del blocco rispetto al
flusso del testo*/
vertical-align: middle;
/* cornice che da un effetto di centrato
in verticale */
padding: 10px;
/* per Firefox: */
display: -moz-inline-stack;
/* non funziona su Firefox */
display: inline-block;
}
.inline_element_text {
background-color: #FF6600;
display: block;
text-align: center;
width: 80px;
/* centrare il testo verticalmente */
vertical-align: middle;
}
Ho applicato i colori di sfondo solo per evidenziare come si comportano i blocchi. Se volete dare un'altezza ad .inline_element, e centrare verticalmente il testo, basta ridare la stessa altezza a .inline_element_text, e dargli lo stesso valore per il line-height; fate attenzione che il testo non vada a capo, altrimenti:
1) con IE viene tagliato
2) con Firefox va a capo, ma, avendo le linee quell'altezza specificata, il blocco occuperà un'esagerazione in verticale...