Come potete vedere di seguito, sia Gecko che Blink eseguono un calcolo di altezza incoerente per diversi elementi di blocco in linea, anche se hanno tutti la stessa classe css. Sembra (* pause *) Trident è l'unico motore di layout per farlo bene.Perché il calcolo dell'altezza è così incoerente in Gecko e Blink quando si ha a che fare con elementi di blocco in linea?
Ho dimenticato di (ri) impostare una proprietà?
Inoltre, come si può vedere in questa fiddle, se cambio l'imbottitura .3em
-1em
Blink rende come previsto. Tutti gli elementi hanno la stessa altezza. Gecko è ancora "rotto" però.
Qualcuno sa perché questo sta accadendo e come risolverlo?
<a> <button> <input> <span>
Gecko (Firefox v 39.0.)
Blink (Google Chrome 43.0.2357.132 v m.):
0.123.516,410617 millionsTrident (Internet Explorer v 11.0.9600.17843.):
body {
font: normal 15px arial;
padding: 1em;
}
.button {
background: #444444;
border: none;
box-sizing: content-box;
color: #ffffff;
cursor: pointer;
display: inline-block;
font-family: arial;
font-size: 1em;
height: auto;
line-height: normal;
margin: 0;
min-height: 1em;
padding: .3em;
text-decoration: none;
}
<a class="button" href="#">button</a><button class="button">button</button><input class="button" type="button" value="button" /><span class="button">button</span>
Ottimo! Solo una nota: la tua correzione Gecko lo ha reso ancora peggiore. Tuttavia, se rimuovo le proprietà 'margin-top' e' margin-bottom' tutto sembra perfetto. Grazie! –
Sì, i margini superiore e inferiore potrebbero dover essere ottimizzati in base ai casi d'uso individuali (a volte 0 funziona meglio). Dipende da alcune cose come il "dimensionamento della scatola", "l'altezza della linea", ecc. Normalmente utilizzo le altezze "border-box" e "px', e" -2px "funziona. In caso contrario, si prega di sperimentare con esso, e una volta trovata un'impostazione che è buona, usarla come parte del "reset" e dimenticarsene. – light