2012-03-19 7 views
0

Je sais que ce devrait être une chose assez facile à faire, mais pour une raison quelconque, j'ai des problèmes et je ne sais pas pourquoi. J'ajoute un contrôleur sous la galerie que vous pouvez utiliser pour faire défiler les diapositives et doit être centré.Centrer un div dans un div

C'est ce que le code ressemble ATM:

<div class="control_wrap" style=""> 
    <div class="gallery_controls" style=""> 
     <a target="_blank"></a> <a target="_blank"></a> <a target="_blank"></a> 
    </div> 
</div> 

CSS:

.control_wrap{ 
    float:left; 
    width:100%; 
} 

.gallery_controls{ 
    margin:0 auto; 
    float:left; 
    width:50%; 
} 

Laissez-moi savoir si vous avez besoin d'informations plus.

Merci.

+2

pourquoi le 'float: left;'? – hjpotter92

+0

flotteur & marge: 0 auto; ne travaillent pas ensemble – sandeep

+0

mis à jour ma réponse pour refléter vos besoins. – Christoph

Répondre

0

Vous devez vous débarrasser du flotteur: à gauche sur .gallery_controls. marge: 0 auto ne fonctionnera pas autrement.

+0

Ok, donc j'ai enlevé le flottant sur les deux divs et ajouté une hauteur, mais maintenant les éléments flottent sur le dessus de la galerie pour une raison quelconque. – JDavies

+0

Vous devez conserver le flottant sur le conteneur parent. Débarrassez-vous-en sur .gallery_controls. –

0

Pour que margin:0 auto; fonctionne, vous devez spécifier une largeur sur ce div et omettre le flottant.

Si vous souhaitez également centrer verticalement votre div, vous avez besoin de position:absolute sur la div ou de display:table-cell sur la div parente avec vertical-align:middle.

Quelque chose comme ceci:

parent{ 
    position:relative; 
} 

child{ 
    position:absolute; 
    top:50%; 
    left:50%; 
    width: <your-width>; 
    height: <your-height>; 
    margin-left: <your-width>/2; 
    margin-top: <your-height>/2; 
} 

Example fiddle

0

Essayez de supprimer le flotteur gauche de cette classe:

.gallery_controls{ 

margin:0 auto; 
/*float:left;*/ 
width:50%; 

}

0

Changez votre CSS à quelque chose comme ceci:

.control_wrap { 
    float:left; 
    width:100%; 
} 
.gallery_controls { 
    margin:0 auto; 
    float: left; 
    text-align:center; 
    width:50%; 
}​ 

Résultat http://jsfiddle.net/AmAMP/1/

+0

il n'y a pas de 'float: center' – Christoph

+0

D'où le premier mot: ** Change **. Comme indiqué sur la page de sortie! – hjpotter92

+0

encore une fois, il n'y a pas de 'float: center', seulement' left', 'right' ou' none' sont autorisés comme mots-clés. – Christoph

0

J'ai mis à jour voir votre CSS s'il vous plaît vérifier: -

.gallery_controls{ 
    margin:0 auto; 
    width:50%; 
    height:50px; 
    background:red; 
} 

ou vous pouvez voir l'exemple en direct pour faciliter la compréhension: - http://jsfiddle.net/cPk53/5/

-1

Utilisation Tables à la place. Avec div l'apparence et la convivialité varient d'un navigateur à l'autre. Au moment où vous sentez que vous l'avez fait, le chargement dans un autre navigateur ou une ancienne version du navigateur cassera votre illusion.

+0

-1 La table est pour les données tabulaires. En voyez-vous ici? – Christoph

+0

Est-ce que div pour l'alignement du centre? –

+0

'div' est un élément de bloc général sans annotation sémantique spéciale, tandis que' table' est désigné pour la présentation de données tabulaires. En particulier pour la structuration de la mise en page 'table' devrait être évitée, parce que cela retarde la flexibilité que vous pouvez atteindre avec' div's. Voir [ZenGarden] (http://www.csszengarden.com) pour un exemple de flexibilité de la disposition de div. – Christoph