2013-04-03 10 views
2

Je suis en train de centrer un contenu qui contient une table dans une div ... Mais je ne peux pas sembler trouver comment faire ...Comment centrer le contenu dans un div

Fondamentalement Id aiment mettre un texte à côté d'une table, et le centre de la table et le texte à la page ...

le contenu que je suis en train de centre:

 <div style="background: purple; padding: 5px;"> 
      <div> 
      <table style="float: left;"> 
       <tr> 
        <th>This</th> 
        <th>is</th> 
        <th>a</th> 
        <th>test</th> 
       </tr> 
      </table> 
      </div> 
      <span style="background: yellow; margin-left: 15px; float: left;">This is a test</span> 
     </div> 

Ce que j'ai essayé:

<div style="background: red; width: 100%; text-align: center"> 
     <div style="background: purple; padding: 5px;"> 
      <div> 
      <table style="float: left;"> 
       <tr> 
        <th>This</th> 
        <th>is</th> 
        <th>a</th> 
        <th>test</th> 
       </tr> 
      </table> 
      </div> 
      <span style="background: yellow; margin-left: 15px; float: left;">This is a test</span> 
     </div> 
    </div> 

Si quelqu'un serait en mesure de me dire ce que je fais mal ici, il serait grandement apprécié.

+0

Donnez une largeur au parent 'div' (c'est-à-dire avec un arrière-plan violet), puis utilisez' margin: 0 auto'. – BenM

+0

Mon proxy de travail ne permet pas jsfiddle ... désolé :( – craig1231

Répondre

0

Voilà comment vous le faire:

http://jsfiddle.net/7TEqW/2/

HTML:

<div class="outer"> 
    <div class="inner"> 
     <table> 
      <tr> 
       <td>TABLE TEXT</td> 
      </tr> 
     </table> 
     <span>SPAN TEXT</span> 
    </div> 
</div> 

CSS:

.outer { 
    width: 100%; 
    text-align: center; 
} 

.inner { 
    display: inline-block; 
    margin: 0 auto; 
} 

table { 
    width: 200px; 
    float: left; 
    margin-right: 20px; 
    background: #999; 
} 

span { 
    display: inline-block; 
    width: 100px; 
    background: #ccc; 
} 
+0

Cela ne fonctionnera pas avec ses éléments flottants – BenM

+0

@BenM - Mon mauvais, j'ai mis à jour ma réponse –

+0

Ok le texte est à côté de la table, mais le le texte et la table ne sont pas centrés sur la page ... – craig1231

0

Retirer float:left et essayez d'ajouter margin:0 auto

.wrap{ 
background: purple; padding: 5px;  
    text-align:center; 
    overflow:auto; 
    position:relative 
} 
table{ 
    background:pink; 
    margin:0 auto 
} 

span{ 
    background: yellow; margin-left: 15px; 
     margin:0 auto 
} 

DEMO

+0

Mon proxy de travail ne permet pas jsfiddle ... désolé :( – craig1231

1

Vous pouvez centrer des éléments à l'aide text-align:center si elles sont inline ou inline-block. Si nous supprimons les flottants et les asseyons l'un à côté de l'autre en utilisant display:inline-block sur le <table>, cette méthode peut être utilisée.

jsFiddle

CSS

table { 
    display:inline-block; 
} 
.wrapper { 
    text-align:center; 
} 

HTML

<div class="wrapper" style="background: purple; padding: 5px;"> 
    <table> 
     <tr> 
      <th>This</th> 
      <th>is</th> 
      <th>a</th> 
      <th>test</th> 
     </tr> 
    </table> 
    <span style="background: yellow; margin-left: 15px;">This is a test</span> 
</div> 
+0

Le texte dans la durée s'affiche sous la table dans IE, ce qui n'est pas ce que je suis désolé.Le texte doit être à côté de la table. – craig1231

1

vous pouvez fournir à ID div intérieure dire intérieure et extérieure disent en haut div:

#outer{width:100%} 
#inner{float:none;margin:0 auto;display:table;} 

si vous trouvez un problème faites le moi savoir !!

0

Placez le contenu souhaité à l'intérieur d'un élément <p style="text-align: center;"> , et il sera centré horizontalement.