2012-05-24 3 views
3

Я застрял. Вот что я делаю, у меня есть виджет добавления AddThis рядом с основным изображением на веб-странице. Изображение меняет размеры, и мне нужно AddThis для динамического изменения его размещения с изображением. Я спросил об этом в another question, и через другой форум я смог получить некоторую помощь. Теперь AddThis и изображение выравниваются правильно, и все, кажется, идет в правильном направлении, однако изображение больше не центрируется. Мне нужно, чтобы этот образ был сосредоточен на странице, но я не могу понять, как это сделать, потому что мне пришлось плавать div, содержащий изображение и AddThis. Вот 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, и он работает, но создает пару других ошибок. Содержимое под изображением отбрасывается, и страница очень широкая, а не ширина 940 пикселей. Я редактировал скрипт, чтобы включить этот дополнительный контент, и я добавил ссылку на страницу с самым последним кодом. Спасибо за вашу помощь. – L84

+0

@Lynda Добро пожаловать. попробуйте это: '$ ('. center'). css ('margin-left', pos/2)'; если ширина вашего контейнера равна 940px, а ширина изображения 300 пикселей, вы можете центрировать элемент, вычислив (940 - ширина изображения (300)) => 640px/2 => 320px, поэтому «margin-left: 320px', я вижу, что ваша верхняя оболочка не центрирована, если вы хотите правильно центрировать элементы, вы также должны центрировать обертку: 'margin: 0 auto'; – undefined

+0

Он работает с одним небольшим сбоем! Код в вашем комментарии работал после того, как я возился с тем, из чего он извлекал свою информацию. Вместо использования '.center' я создал еще один div, чтобы обернуть только изображение и код AddThis. Затем вместо использования '$ ('img'). Width();' я добавил класс к основному изображению и использовал его. Теперь единственная проблема, которую я вижу, - это основное изображение, а логотип под ним немного не в центре. Он может находиться вне центра на 20 пикселей, но это заметно. Любые идеи, как исправить это? Примечание. Среда Fiddle обновлена. – L84

-1

Я не уверен, что содержание вашего «им-центра», так как я добавить встроенный стиль (выравнивания текста: центр;), как показано ниже, протестировали его и прекрасно работает, т.е. 8.

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

Определить фиксированную ширину для центра div будет ОК, если это не требует фиксированной ширины, то решение jQuery @ Raminson лучше. Я действительно хочу знать, если мы можем реализовать это с чистым 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

Странно, я тоже пробовал это на хроме, все в порядке. Коренной причиной является «float: left» родительского контейнера? Сначала вы можете сначала удалить «float: left» и отладить его шаг за шагом. – khuang

-4

Попробуйте применить правило margin: 0 auto; CSS в DIV.

+0

Не работает, я пробовал это. – L84

+2

Это не работает с плавающими элементами. – joshnh

Смежные вопросы