2014-12-23 15 views
0

假設我有如下因素構成的頁面:錯誤offsetParent和offsetleft的分度`位置:static`

<div id="page"> 
    <div class="someblock"> 
     .... 
     <div class="container"> 
      <span>January</span> 
      <span>February</span> 
      <span>March</span> 
      ... 
     </div> 
     .... 
    </div> 
</div> 

CSS

#page { 
    position:relative; 
    width:1000px; 
    margin:0 auto; 
} 
.someblock { 
    margin-left:500px; 
} 
.container span { 
    display:inline-block; 
} 

現在我想要得到的一個偏移<span>

var pos = $(".container span").first().offset().left; 

假定pos必須爲0,但實際值大約爲1000.在搜索問題後,我發現的<span>不是.container,而是#page。爲什麼?!!經過進一步搜索,我發現元素之間的唯一區別是position。對於.contaier(瀏覽器的默認值),#pagestaticrelative。臨時解決方案是

div { 
    position:relative; 
} 

但我不想這個改變。所以我的問題 - 如何抵消一個元素,雖然它有position:static

+0

是否有另'.container'頁面上? – waki

+0

不,只有一個'.container' – folibis

+0

看看那個http://jsfiddle.net/5yxwmL95/,展開'result area'並重新運行,你可以看到值是變化的。 – waki

回答

0

你必須清楚地顯示所有元素,因此補充一點:

div { 
    display:block; 
} 
.container { 
    width:100%; 
    float:left; 
} 
+0

當然,所有的div都是塊元素。 – folibis

+0

編輯我的答案。再試一次 –

0

嘗試

var pos = $(".container").offset().left - $(".container span").first().offset().left; 

http://jsfiddle.net/5yxwmL95/3/

+0

我在onReady裏面使用這段代碼,只是省略了那對於crear源碼 – folibis

+0

更新了,試試吧 – waki