2012-10-18 16 views
5

Sono stato googling per un po ', ma ancora non riusciva a trovare il motivo per cui
è $(document).height() diverso da $(document.body).height()?

Inoltre, qualcuno potrebbe dirmi la relazione corrispondente tra i metodi di altezza
in jQuery e quelli JavaScript grezzi?

Ad esempio, $(document).height() equivale a document.documentElement.scrollHeight.

+0

try body {margine: 0; padding: 0;} e quindi controlla le altezze –

risposta

4

Poiché l'elemento <body> nel vostro HTML è solo un altro elemento di blocco (molto simile a un <div>), e come ogni elemento di blocco, può avere lo styling dimensionale (margin, padding, width, height, ecc).

Considerando che la "dimensione" dell'elemento <body> non deve necessariamente corrispondere direttamente alla dimensione dell'oggetto document (che corrisponde all'intero documento HTML come renderizzato, nel suo complesso). Una buona ragione è che l'elemento <body> si trova anche all'interno dell'elemento <html>, che è anche un elemento di blocco e può avere le proprie dimensioni.

Se il vostro elemento <html>, per esempio, ha avuto , allora il vostro elemento <body> sarà sicuramente diverso in termini di dimensioni efficace per l'intera document del tutto.

Ora, non fraintendetemi: document e document.bodypuò hanno la stessa dimensione esatta (provare a controllare StackOverflow di, per esempio), ma si deve capire che <body> è solo un altro blocco HTML è possibile manipolare tramite CSS.

+0

ciao, Ilagan, secondo la tua risposta, pensi che se resettiamo il css standard del browser (html, body {margin: 0; padding: 0;}), allora otterremo le stesse altezze, incluso clientHeight, offsetHeight e scrollHeight? BTW: Ho fatto alcuni test, i risultati non erano così. –

+0

Se resetti di nuovo a 'html, body {margin: 0; padding: 0; } ', ** e ** assicurati che il tuo' width's e 'height's siano impostati correttamente dovresti. Non si tratta solo di margini e paddings. Assicurati di non * sovrascrivere * le tue regole di reset da qualche parte su qualche altro foglio di stile. –

0

Penso che il corpo abbia un margine standard. Per la seconda parte, non ho idea di cosa intendi.

+0

yup, penso che un margine standard sia uno dei motivi che fa sì che questi due differiscano l'uno dall'altro, ma ci dovrebbero essere qualche altra ragione (s) là fuori. Comunque, grazie per il tuo aiuto. –