2012-10-18 3 views
5

J'ai été googling pendant un certain temps, mais je ne pouvais toujours pas trouver pourquoi
est $(document).height() différent de $(document.body).height()? De plus, quelqu'un pourrait-il me dire la relation correspondante entre les méthodes de hauteur
dans jQuery et les JavaScript brutes?

Par exemple, $(document).height() est équivalent à document.documentElement.scrollHeight.

+0

try body {margin: 0; padding: 0;} et ensuite vérifier les hauteurs –

Répondre

4

Parce que l'élément <body> dans votre code HTML est juste un autre élément de bloc (comme une <div>), et comme tout élément de bloc, il peut avoir un style dimensions (margin, padding, width, height, etc.). Considérant que, la "taille" de l'élément <body> n'a pas besoin de correspondre directement à la taille de l'objet document (qui correspond à l'ensemble de votre document HTML tel qu'il est rendu). Une bonne raison est que l'élément <body> se trouve également à l'intérieur de l'élément <html>, qui est également un élément de bloc, et peut avoir ses propres dimensions.

Si votre élément <html>, par exemple, avait , votre élément <body> diffère certainement en taille réelle à l'ensemble entièrement document.

Maintenant, ne vous méprenez pas: document et document.bodypeut avoir exactement la même taille (essayez de vérifier de par exemple StackOverflow), mais vous devez comprendre que <body> est juste un autre bloc HTML, vous pouvez manipuler via CSS.

+0

Salut, Ilagan, pour votre réponse, vous pensez que si nous réinitialisons le navigateur standard css (html, body {margin: 0; padding: 0;}), alors nous aurons les mêmes hauteurs, y compris clientHeight, offsetHeight et scrollHeight? BTW: J'ai fait quelques tests, les résultats n'étaient pas comme ça. –

+0

Si vous revenez à 'html, body {margin: 0; rembourrage: 0; } ', ** et ** assurez-vous que vos' width's et 'height's sont correctement définis. Il ne s'agit pas seulement de marges et de paddings. Assurez-vous de ne pas outrepasser * vos règles de réinitialisation quelque part dans une autre feuille de style. –

0

Je pense que le corps a une marge standard. Pour la deuxième partie, je n'ai aucune idée de ce que vous voulez dire.

+0

yup, je pense qu'une marge standard est l'une des raisons qui fait que ces deux diffèrent les uns des autres, mais il devrait y avoir d'autres raisons là-bas. Quoi qu'il en soit, merci pour votre aide. –