2015-07-23 26 views
5

Ho il seguente codice che è fondamentalmente un contenitore che ha una larghezza e viene poi riempito con quadrati per cui v'è un numero uguale di quadrati accorss e giù:Perché il contenitore perde 10px di altezza?

var container = $('.container'), 
 
    numberOfSquares = 25, 
 
    squareSize = container.width()/numberOfSquares; 
 

 
for (var squares = 0; squares < numberOfSquares * numberOfSquares; squares++) { 
 
    $('<div class="gridSquare"></div>').appendTo(container); 
 
} 
 

 
$('.gridSquare').css({ 
 
    "height": squareSize + "px", 
 
    "width": squareSize + "px" 
 
});
.container { 
 
    width: 960px; 
 
} 
 
.gridSquare { 
 
    background-color: black; 
 
    display: inline-block; 
 
    vertical-align: top; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="container"></div>

mia domanda è il motivo per cui lo .container perde 10px in altezza (se controlli l'elemento è alto solo 950px), anche se i quadrati all'interno sono quadrati, c'è un numero uguale in verticale e in orizzontale e la riga riempie l'intero 960px?

Ho appena controllato e questo sembra solo a verificarsi in cromo

+0

'display: inline-block' fa cose strane. Prova a provare con 'overflow: hidden' su' .container' e 'float: left' su' .gridSquare' (è 950.391px). –

+0

funziona bene in Firefox, sembra collegato al browser –

+0

Squaresize non è (sempre) un numero tondo. È possibile utilizzare Math.round(), Math.floor() o Math.ceil(). – schellingerht

risposta

6

Poiché è possibile disegnare solo in pixel pieni. L'altezza di ogni quadrato è arrotondata da 38,4 px a 38 px. 25 * 38 px = 950 px.

+0

ah ok, ma perché non avrei uno spazio 10px su la mia fila orizzontale allora? – Pete

+0

Hai una regola css che imposta la larghezza a 960px indipendentemente da cosa. I quadrati tuttavia prendono solo 950 px della larghezza. O il browser potrebbe effettivamente renderli adatti alla larghezza del css. –

+0

perché arrotondato? Non vedo OP utilizzando alcun metodo round. –

Problemi correlati