2012-05-24 4 views
3

Je suis bloqué. Voici ce que j'ai en cours, j'ai un widget de partage AddThis à côté d'une image principale sur une page Web. L'image change de taille et j'ai besoin de l'AddThis pour changer son emplacement avec l'image de façon dynamique. J'ai demandé cela au another question et à travers un autre forum, j'ai pu obtenir de l'aide. Maintenant, AddThis et l'image s'alignent correctement et tout semble aller dans la bonne direction, mais l'image n'est plus centrée. J'ai besoin que cette image soit centrée sur la page mais je n'arrive pas à comprendre comment faire cela car j'ai dû faire flotter la div contenant l'image et AddThis. Voici le code HTML:Centrer un div flottant

<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> 

Des idées pour centrer cela? Je peux utiliser une solution CSS droite ou une solution utilisant jQuery et CSS. S'il vous plaît fournir des exemples. Il s'agit d'un JSFIDDLE of the page.

Here is a page qui a le code le plus à jour que je tente.

+1

_ "Je devais faire flotter le div" _ - Pourquoi? Je ne sais pas que je peux suggérer quelque chose sans voir certains des éléments environnants. – nnnnnn

+0

@nnnnnn - C'est la façon dont l'AddThis agissait. Pour le mettre en position par rapport à l'image, il a fallu le faire flotter. – L84

+0

pouvez-vous fournir un exemple sur [jsfiddle] (http://jsfiddle.net)? – undefined

Répondre

1

essayez ceci:

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

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

+0

Mon commentaire que j'ai fait plus tôt semble avoir disparu. Je suis désolé si cela se voit deux fois. J'ai implémenté votre js et cela fonctionne mais crée quelques autres erreurs. Le contenu en dessous de l'image est rejeté et la page est très large maintenant, tout en restant fidèle à la largeur de 940px. J'ai édité le violon pour inclure ce contenu supplémentaire et j'ai ajouté un lien vers la page avec le code le plus récent. Merci de votre aide. – L84

+0

@Lynda vous êtes les bienvenus. essayez ceci: '$ ('. centre'). css ('marge-gauche', pos/2)'; si la largeur de votre conteneur est 940px et la largeur de l'image est 300px, vous pouvez centrer l'élément en calculant (940 - largeur de l'image (300)) => 640px/2 => 320px, donc 'marge-gauche: 320px', Je peux voir que votre enveloppe supérieure n'est pas centrée si vous voulez centrer les éléments correctement, vous devriez également centrer l'enveloppe: 'margin: 0 auto'; – undefined

+0

Cela fonctionne avec un léger problème! Le code dans votre commentaire a fonctionné après que j'ai joué avec ce qu'il tirait de ses informations. Au lieu d'utiliser '.center' j'ai créé une autre div pour envelopper juste l'image et le code AddThis. Puis au lieu d'utiliser '$ ('img'). Width();' J'ai ajouté une classe à l'image principale et l'ai utilisée. Maintenant, le seul problème que je peux voir est l'image principale et le logo ci-dessous sont légèrement décentrés. Il peut être décentré de 20px mais il est visible. Des idées pour corriger cela? Note: Le violon a été mis à jour. – L84

-1

Je ne suis pas sûr que le contenu de votre 'im-centre', depuis que j'ajoute un style en ligne (text-align: center;) comme ci-dessous, testé et fonctionne très bien sur à savoir 8.

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

Définir une largeur fixe pour le centre div serait OK, si cela ne nécessite pas une largeur fixe, la solution jquery @ Raminson est meilleure. Je veux vraiment savoir si nous pouvons mettre en œuvre ce avec css pur

<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

C'est ce que la classe 'img-center' est. J'ai édité le post pour refléter cela. Aussi cela ne fonctionne pas. – L84

+0

Quel est votre navigateur Web? Je l'ai testé sur IE8. – khuang

+0

C'est étrange, j'ai aussi essayé ça sur le chrome, c'est OK. La cause première est le 'float: left' du conteneur parent? Vous pouvez supprimer temporairement le 'float: left' et le déboguer pas à pas. – khuang

-4

Essayez d'appliquer margin: 0 auto; règle CSS à la div.

+0

Ne fonctionne pas, j'ai essayé cela. – L84

+2

Cela ne fonctionne pas avec les éléments flottants. – joshnh