Avatar billede jesper-moeller Nybegynder
19. juni 2006 - 01:45 Der er 9 kommentarer og
2 løsninger

clientWidth vs. offsetWidth

Mit spørgsmål er ganske enkelt
Hvad er forskellen på clientWidth og offsetWidth ???
Hvornår bruger man hvad ???
Er det ene bedre end det andet ???
Avatar billede spaceus Nybegynder
19. juni 2006 - 08:29 #2
clientwidth har ikke margin,border og scrollbar bredde med det er offsetwidth
Avatar billede mclemens Nybegynder
19. juni 2006 - 08:48 #4
offsetWidth har ikke margin med...
- clienwidth=bredde
- offsetWidth=bredde+padding+border (Ikke margin)


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<style type="text/css">
#abc{width:150px;border:25px solid #000;padding:25px;margin:50px;}
</style>

<script type="text/javascript">
window.onload=function(){
alert(document.getElementById("abc").offsetWidth+"\n"+document.getElementById("abc").clientWidth);
}
</script>

</head><body>
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
<div id="abc">TEST</div>
</body></html>
Avatar billede thrytter Nybegynder
19. juni 2006 - 08:51 #5
spaceus>> Du har ret - stadig tidligt på dagen og tilmed mandag morgen..
Avatar billede mclemens Nybegynder
19. juni 2006 - 09:07 #6
[ Hvornår bruger man hvad ??? ]
- Det afhænger meget af situationen... men lad os sige at vi ville appende et nyt object ind i et element og det nye object skulle have samme width som det andet på nær et par px - så burde vi måle på clientWidth da vi ellers ville udvide det eksisterende object ret så voldsomt ellers skulle vi validere på både border og padding (og vi kan ikke validere på style.border og style.padding med mindre de sættes via javascript.

Og vi kan ikke bare teste på style.width da denne værdi ikke er til rådighed med mindre den sættes med javascript ... (sikke noget øv) ... Så i det tilfælde bliver det nytobject.style.width=clientWidth-10px (f.eks.)

[ Er det ene bedre end det andet ??? ]
- Det afhænger af hvad man skal bruge...
Avatar billede jesper-moeller Nybegynder
19. juni 2006 - 19:10 #7
Tror / Håber jeg har forstået det grundlægende  *S*

Takker

Smid point de af jeg der vil have
Avatar billede mclemens Nybegynder
19. juni 2006 - 19:31 #8
Ingen point hertil - jeg ville bare lige uddybe spaceus's svar med at margin ikke var i offsetWidth og kaste et eksempel der viste det ... Eksemplet viser også vigtigheden af at IE ikke er i quirks ... hvis man fjerner doctypen - så går det helt galt :o)
Avatar billede spaceus Nybegynder
20. juni 2006 - 00:31 #9
jamen nå mclemens nu er så flink.. og har ret vil jeg da altid gerne have point ;) eller tjaaa
Avatar billede jesper-moeller Nybegynder
20. juni 2006 - 00:45 #10
mclemens får ret

spaceus får point

og jeg får ro i sindet

:-P
Avatar billede mclemens Nybegynder
20. juni 2006 - 01:29 #11
[ mclemens får ret ] Tak for det :o)
[ og jeg får ro i sindet ] - og sov godt :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester