login  Naam:   Wachtwoord: 
Registreer je!
 Forum
Zoeken  Regels  Help
Categorieën > JavaScript

Opvragen van automatische margin

cumulus007 – 10/11/2009 16:43
Ik heb een div die gecentreerd wordt door met CSS
  1. margin-left: auto;
  2. margin-right: auto;


te gebruiken. Nu wil ik een plaatje tegen de rand van die div aanplakken, maar daarvoor heb ik de afstand van de linkerkant van de pagina tot de linkerrand van de div nodig. Ik dacht dat ik dit zou kunnen opvragen met
  1. document.mijndiv.style.marginLeft


, maar die is leeg, waarschijnlijk doordat ik een automatische margin gebruik.

Mijn vraag: hoe vraag ik de automatisch gegenereerd margin alsnog op?

2 antwoorden

Gesponsorde links

BramBo – 11/11/2009 20:07
Een automatisch gegenereerde margin kan je helaas niet op halen, de optie welke het mogelijk maakt om de margin in te lezen; Dus style.margin wordt toegepast op inline style definities en dus geen CSS styles. De css stijlen zijn ook in te lezen via javascript maar dit zal jou in dit geval ook geen goed doen, aangezien deze auto(o.i.d.) zal retourneren.

Een optie zou zijn de afbeelding aan de div toe te voegen een een negatieve margin mee te geven. Dus iets in de trant van:
  1. #a, #b {
  2. width : 200px;
  3. border : 1px solid red;
  4. }
  5. #a {
  6. margin : 10px auto 10px auto;
  7. }
  8. #b {
  9. float : left;
  10. margin : -1px 0 0 -202px;
  11. }



  1. <div id="a">A
  2. <div id="b">B</div>
  3. </div>


Richard – 11/11/2009 20:38
Even copy-pasta van een willekeurige site.

  1. function getStyle(el, style){
  2. if(!document.getElementById) return;
  3.  
  4. var value = el.style[style];
  5.  
  6. if(!value)
  7. if(document.defaultView)
  8. value = document.defaultView.
  9. getComputedStyle(el, "").getPropertyValue(style);
  10.  
  11. else if(el.currentStyle)
  12. value = el.currentStyle[style];
  13.  
  14. return value;
  15. }
  16.  
  17. function toCamelCase(input) {
  18. var ret = input;
  19. while(ret.match(/(-[a-zA-Z])/) != null) {
  20. ret = ret.replace(ret[1], ret[1].toUpperCase().substring(1));
  21. }
  22.  
  23. alert(getStyle('a', 'margin-left'));


Gesponsorde links

Dit onderwerp is gesloten.
Actieve forumberichten:

© 2002-2012 Sitemasters.be - Regels - Gehost door: Vircon - Laadtijd: 0.046s