2015-09-14 9 views
5

ho div con margin:auto; e ho bisogno di ottenere solo margin-left valore della dimensione utilizzando JavaScript :)Come ottenere margine dimensioni sinistra utilizzando JavaScript quando uso di proprietà di auto margine in css

//css 
.test{ 
     margin: auto; 
     width: 100px; 
     height: 100px; 
     outline: 1px solid red; 
    } 


// html 
     <div class="test">Test</div> 

Live example

+0

provare 'alert (document.getElementById ("test") offsetLeft.);' –

+0

avviso stampa NaN –

+0

sostituire a ''

risposta

2

Utilizzare questa:

1) Con jQuery

var left = $(".test").offset().left; 

2) Oppure, seconda versione è che: Sostituisci il tuo div a <div class="test" id="test"></div>, e utilizzare questo js.

var left = document.getElementById("test").offsetLeft; 
+0

grazie :) ... –

4

È don' t necessario jQuery per questo, è sufficiente JavaScript:

var left, element = document.querySelector('.test'); 
if(element) { 
    left = element.getBoundingClientRect().left; 
} 
+0

Non restituisce margini, restituisce la dimensione di un elemento e la sua posizione rispetto al viewport. https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect – Lunokhod

1

È possibile utilizzareMetodose non è necessario il supporto IE8.

var test = document.querySelector('.test'); 
var left_margin = window.getComputedStyle(test).getPropertyValue("margin-left"); // returns margin e.g. '655px' 
left_margin = left_margin.match(/\d+/); //returns bare number e.g. '655'