Je sais qu'il me manque probablement quelque chose de vraiment évident, mais j'ai essayé display: block;
et margin: 0 auto;
, et le div intérieur ne se centre pas horizontalement dans mon div parent?
.row-fluid-wrapper.row-depth-1.row-number-3 {
display: block;
margin: 0 auto;
text-align: center;
border: 1px solid red;
}
.row-fluid {
width: 100%;
display: block;
margin: 0 auto;
}
.row-fluid [class*="span"] {
margin: 0 auto;
border: 1px solid blue;
display: block;
float: left;
min-height: 28px;
margin-left: .2%;
box-sizing: border-box;
height: 150px;
}
.row-fluid .span4 {
width: 31.914893614%;
}
<div class="row-fluid-wrapper row-depth-1 row-number-3 ">
<div class="row-fluid ">
<div class="span4 widget-span widget-type-custom_widget ">
<div class="cell-wrapper layout-widget-wrapper">
<span>
<div class="clearfix cta-wrapper">
<div class="cta-text">
<p>Col 1</p>
<p>Text.</p>
</div>
</div>
</span>
</div>
</div>
<div class="span4 widget-span widget-type-custom_widget">
<div class="cell-wrapper layout-widget-wrapper">
<span><div class="clearfix cta-wrapper">
<div class="cta-text">
<p>Col 2</p>
<p>Text.</p>
</div>
</div>
</span></div>
</div>
<div class="span4 widget-span widget-type-custom_widget">
<div class="cell-wrapper layout-widget-wrapper">
<span><div class="clearfix cta-wrapper">
<div class="cta-text">
<p>Col 3</p>
<p>Text</p>
</div>
</div>
</span></div>
</div>
</div>
</div>
Comme vous pouvez le voir, les divs bleus sont plus alignés à gauche que d'être au milieu.
Réponses:
1 pour la réponse № 1Supprimer le style float: left
et rendre la propriété d'affichage comme display: inline-block
pour la classe .row-fluid [class*="span"]
, comme suit. S'il vous plaît trouvez le exemple de travail ici.
.row-fluid [class*="span"] {
margin: 0 auto;
border: 1px solid blue;
display: inline-block;
/* float: left; */
min-height: 28px;
margin-left: .2%;
box-sizing: border-box;
height: 150px;
}
0 pour la réponse № 2
si bien compris, cela ferait:
Sur le CSS pour: .row-fluid [class*="span"]
Ajouter: display: inline-block;
Retirer: float: left;
, margin-left: .2%;
, display: block;
Cela se traduira par entièrement centré divs.
.row-fluid-wrapper.row-depth-1.row-number-3 {
display: block;
margin: 0 auto;
text-align: center;
border: 1px solid red;
}
.row-fluid {
width: 100%;
display: block;
margin: 0 auto;
}
.row-fluid [class*="span"] {
margin: 0 auto;
border: 1px solid blue;
/* display: block;*/
display: inline-block;
/*float: left;*/
min-height: 28px;
/* margin-left: .2%;*/
box-sizing: border-box;
height: 150px;
}
.row-fluid .span4 {
width: 31.914893614%;
}
<div class="row-fluid-wrapper row-depth-1 row-number-3 ">
<div class="row-fluid ">
<div class="span4 widget-span widget-type-custom_widget ">
<div class="cell-wrapper layout-widget-wrapper">
<span>
<div class="clearfix cta-wrapper">
<div class="cta-text">
<p>Col 1</p>
<p>Text.</p>
</div>
</div>
</span>
</div>
</div>
<div class="span4 widget-span widget-type-custom_widget">
<div class="cell-wrapper layout-widget-wrapper">
<span><div class="clearfix cta-wrapper">
<div class="cta-text">
<p>Col 2</p>
<p>Text.</p>
</div>
</div>
</span></div>
</div>
<div class="span4 widget-span widget-type-custom_widget">
<div class="cell-wrapper layout-widget-wrapper">
<span><div class="clearfix cta-wrapper">
<div class="cta-text">
<p>Col 3</p>
<p>Text</p>
</div>
</div>
</span></div>
</div>
</div>
</div>
0 pour la réponse № 3
Il semble que vous n'utilisiez pas du tout les propriétés css correctement ...
1... postuler margin:0 auto
avec display:block
dans row-fluid
est l'alignement au centre, mais il y a width:100%
donc pas besoin d'utiliser margin:0 auto
ici.
2... alors vous avez postulé margin: 0 auto
dans span4
avec flaot:left
, ce qui est encore faux.
3... pourquoi utilisez-vous display:block
avec width:100%
dans div
.... les divs sont par défaut display:block
avec width:100%
...
4... en utilisant également margin-left:.2%
dans span4
div ne sera pas centré visuellement car cela ajoutera également une marge au dernier div également ... appliquer margin:0 .1%
5... pas besoin non plus de régler min-height
et height
à la fois dans le spa4
div
Ce que vous devez faire est simplement de retirer le float:left
du span4
classe et définissez-le comme display:inline-block
...votre .span4
div alignera le centre comme vous l'avez utilisé text-align:center
dans la div parent .row-fluid-wrapper
Remarque: ici, j'ai appliqué le font-size:0
à la classe parent pour supprimer l'espace blanc entre le inline-block
div, puis définissez à nouveau la font-size:initial
à la div intérieure
Voici la version minimisée de votre code
Extrait de pile
.row-fluid-wrapper.row-depth-1.row-number-3 {
text-align: center;
border: 1px solid red;
font-size: 0;
}
.row-fluid [class*="span"] {
border: 1px solid blue;
display: inline-block;
margin: 0 .1%;
box-sizing: border-box;
height: 150px;
font-size: initial;
}
.row-fluid .span4 {
width: 31.914893614%;
}
<div class="row-fluid-wrapper row-depth-1 row-number-3 ">
<div class="row-fluid ">
<div class="span4 widget-span widget-type-custom_widget ">
<div class="cell-wrapper layout-widget-wrapper">
<div class="clearfix cta-wrapper">
<div class="cta-text">
<p>Col 1</p>
<p>Text.</p>
</div>
</div>
</div>
</div>
<div class="span4 widget-span widget-type-custom_widget">
<div class="cell-wrapper layout-widget-wrapper">
<div class="clearfix cta-wrapper">
<div class="cta-text">
<p>Col 2</p>
<p>Text.</p>
</div>
</div>
</div>
</div>
<div class="span4 widget-span widget-type-custom_widget">
<div class="cell-wrapper layout-widget-wrapper">
<div class="clearfix cta-wrapper">
<div class="cta-text">
<p>Col 3</p>
<p>Text</p>
</div>
</div>
</div>
</div>
</div>
</div>