2012-11-11 11 views
6

ho questo semplice HTMLImpostazione altezza div max non funziona

<html> 
<head> 
    <style> 
    </style> 
</head> 
<body> 
<div style="position: relative; overflow: visible; width: 100%; height: 100%;" class="surface"> 
    <div style="width: 300px; max-height: 2px; height: 2px; position: absolute; left: 36.165px; top: 0.8957px; border: 1px solid red;"></div> 
    <div style="width: 1px; height: 200px; position: absolute; left: 30.165px; top: 47.8957px; border: 1px solid red;"></div> 
</div> 
</body> 
</html> 

Ci sono fondamentalmente due div s: uno "orizzontale" (altezza 2px) e uno (altezza 2px) "verticale".

Quando osservo la pagina su firefox:

enter image description here

mentre su IE (8) cosa succede weired:

enter image description here

il DIV superiore non è 2px alta.

Qualche idea, perché è così?

+0

ecco un breve [jsFiddle] (http://jsfiddle.net/pqps5/1 /). IE9 va bene. – kapa

+0

@ bažmegakapa Ho provato a creare un jsfiddle me stesso e andava bene anche in IE 8, per questo motivo dovevo fare il printcreen. Puoi per favore provare a inserire il mio codice in un .html e vedere se hai questo comportamento imbarazzato anche nel tuo IE? (non usando jsfiddle). –

+0

così fa IE7 ... forse hai solo bisogno di aggiungere 'display: block' – JFK

risposta

3

I suoi possibili soluzioni:

1). Aggiungi display: block al tuo stile

2). verificare di avere una corretta DOCTYPE altrimenti (IE) la modalità di quirks produrrà formato e risultati imprevisti. Check this article for reference

1

Ho il sospetto che questo sarà IE aggiungendo alcune impostazioni "utili" in modalità quirks che spinge l'altezza di un contenitore all'altezza minima del testo. Prova a impostare line-height: 2px; per IE8 e inferiore (commenti condizionali, forse?) E questo dovrebbe essere ordinato.

+0

sì, ma non spiega perché sono riuscito a vedere che in jsfiddle ma non nel mio semplice HTML, la soluzione @Tyzoid vale per tutto il mio codice –

3

IE7, 8 e 9 funziona bene qui.

Non hai davvero bisogno del max-height, ma impostare un display: block e/o line-height: 2px invece potrebbe essere una soluzione.

+0

sì ma non spiega perché sono riuscito a vederlo in jsfiddle ma non nel mio semplice HTML, la soluzione @Tyzoid vale per tutto il mio codice –

4

Il problema sembra derivare dalla modalità quirks mode.

Si verifica quando non è presente una dichiarazione doctype. L'altezza massima, tra le altre cose (incluso il modello di box), agisce come se fosse pari a 5. Una soluzione semplice è quella di aggiungere una dichiarazione doctype:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
+1

Grazie amico, l'ha fatto! –

+0

@jidma: beh, te l'ho detto – JFK

0

Nel mio caso c'era un

min-height

impostazione che la priorità sulle altre impostazioni