2012-05-24 113 views
3

我被卡住了。這是我正在做的事情,我在網頁上的主圖像旁邊有一個AddThis共享窗口小部件。圖像更改大小,我需要AddThis以動態更改其與圖像的位置。我在another question問過這個問題,通過另一個論壇我可以得到一些幫助。現在AddThis和圖像對齊正確,一切似乎都朝着正確的方向,但圖像不再居中。我需要這個圖像集中在頁面上,但我不知道如何做到這一點,因爲我不得不浮動包含圖像和AddThis的div。這裏是HTML:居中浮動div

<div class="feature-container"> 
<div style="min-height:100px; min-width:100px; position:relative; float:left; "> 
<div style="text-align:center;"><img class="feature-image" 
    src="/Images/test.jpg" width="300px;" alt="test" /></div> 
<div style="position:absolute; bottom:0px; right:-40px;"> 
    <div class="addthis_toolbox addthis_floating_style addthis_16x16_style"> 
     <a class="addthis_button_facebook"></a> 
     <a class="addthis_button_twitter"></a> 
     <a class="addthis_button_email"></a> 
     <a class="addthis_button_compact"></a> 
     </div> 
    <script type="text/javascript" src="http://s7.addthis.com/js/300 
       /addthis_widget.js"></script> 
</div> 
</div> 
</div> 

任何想法如何居中?我可以使用直接的CSS解決方案或使用jQuery和CSS的解決方案。請提供例子。

這裏是JSFIDDLE of the page

Here is a page這是我嘗試使用的最新代碼。

+1

_ 「我不得不浮動DIV」 _ - 爲什麼?我不知道如果沒有看到一些周圍的元素,我可以提出任何建議。 – nnnnnn

+0

@nnnnnn - 這是AddThis的行事方式。爲了使它相對於圖像的位置,它必須被漂浮。 – L84

+0

你能提供[jsfiddle](http://jsfiddle.net)上的示例嗎? – undefined

回答

1

試試這個:

var pos = $('.center').width() - $('img').width(); 
$('.center').css('margin-left', pos); 

http://jsfiddle.net/WY9YX/4/

+0

我之前提出的評論似乎已經消失。如果出現兩次,我很抱歉。我實現了你的JS,它的工作原理,但創造了一些其他的錯誤。圖片下方的內容被拋棄,頁面非常寬,與940px的寬度相符。我編輯了小提琴以包含這些額外的內容,並且我添加了帶有最近代碼的頁面的鏈接。謝謝你的幫助。 – L84

+0

@Lynda歡迎您。試試這個:'$('。center').css('margin-left',pos/2)';如果你的容器的寬度是940px,圖像的寬度是300px,你可以通過計算(940-圖像的寬度(300))=> 640px/2 => 320px,所以'margin-left:320px',我可以看到你的最上面的包裝不居中,如果你想正確地居中元素,你應該居中包裝:'margin:0 auto'; – undefined

+0

它有一個輕微的故障!在我擺弄它從中提取信息的時候,你的評論中的代碼起作用。我創建了另一個div來包裝圖像和AddThis代碼,而不是使用'.center'。然後,而不是使用'$('img')。width();'我添加了一個類到主圖像並使用它。現在我能看到的唯一問題是主圖像和它下面的徽標略偏離中心。它可能偏離20px,但它是顯而易見的。任何想法如何糾正?注:小提琴已更新。 – L84

-1

我不知道你的「IM-中心」的內容,因爲我添加的內嵌樣式(文本對齊:中心;)如下,測試它和IE 8

<div class="img-center" style="text-align:center;"> 
    <img src="test.jpg" alt="test" /> 
</div> 
工作正常

定義中心div的固定寬度可以,如果這不是一個固定的寬度,@ Raminson的jquery解決方案更好。我真的很想知道,如果我們能夠實現這個純CSS

<div id="top" class="wrap_fullwidth"> 
    <div class="center" style="width:400px;"> 
<div style="min-height:100px; min-width:100px; position:relative; float:left; "> 
    <div style="text-align:center;"><img src="http://www.ubhape2.com/Images/test.jpg" alt="test" /></div> 
    <div style="position:absolute; bottom:0px; right:-40px;"> 
     <div class="addthis_toolbox addthis_floating_style addthis_16x16_style"> 
      <a class="addthis_button_facebook"></a> 
      <a class="addthis_button_twitter"></a> 
      <a class="addthis_button_email"></a> 
      <a class="addthis_button_compact"></a> 
      </div> 
     <script type="text/javascript" src="http://s7.addthis.com/js/300/addthis_widget.js"></script> 
    </div> 
</div> 
</div> 

</div>​​​ 
+0

這就是'img-center'類。我編輯帖子以反映這一點。此外,這是行不通的。 – L84

+0

什麼是您的網絡瀏覽器?我在IE8上測試過它。 – khuang

+0

這很奇怪,我也在Chrome上試過這個,這是可以的。根本原因是父容器的'float:left'?你可以先移除'float:left',然後逐步調試它。 – khuang

-4

嘗試應用margin: 0 auto; CSS規則到div。

+0

不起作用,我試過了。 – L84

+2

這不適用於浮動元素。 – joshnh