J'ai besoin d'aligner à gauche, au centre et à droite le texte sur la même ligne. J'ai le texte suivant:
J'ai écrit le code suivant qui fonctionne pour aligner le texte à gauche et à droite mais ne fonctionne pas correctement pour le texte du centre.
HTML
<div id="textbox">
<p class="alignleft">1/10</p>
<p class="aligncenter">02:27</p>
<p class="alignright">100%</p>
</div>
<div style="clear: both;"></div>
CSS
.alignleft {
float: left;
}
.aligncenter {
float: left;
}
.alignright {
float: right;
}
Essaye ça
MIS &AGRAVE; JOUR
HTML
<div id="textbox">
<p class="alignleft">1/10</p>
<p class="aligncenter">02:27</p>
<p class="alignright">100%</p>
</div>
<div style="clear: both;"></div>
CSS
.alignleft {
float: left;
width:33.33333%;
text-align:left;
}
.aligncenter {
float: left;
width:33.33333%;
text-align:center;
}
.alignright {
float: left;
width:33.33333%;
text-align:right;
}
Démo le code ici: http://jsfiddle.net/wSd32/1/ J'espère que cela aide!
La manière magique qui fonctionne en HTML5 est d’utiliser flex:
<div id="textbox">
<p class="alignleft">1/10</p>
<p class="aligncenter">02:27</p>
<p class="alignright">100%</p>
</div>
<div style="clear: both;"></div>
CSS
#textbox {
display: flex;
justify-content: space-between;
}
Démo:
http://jsfiddle.net/sep4kf6a/1/
Vous constaterez que cela évite l'encapsulation délicate des boîtes de dialogue sur un petit écran.
Peut-être que cela fonctionne:
p{width:33%;float:left;}
.alignleft{text-align:left;}
.aligncenter {text-align:center;}
.alignright {text-align:right;}
Et maintenant, une approche nouvelle et assez différente.
.same-line {
height: 10px; /*childrens it's all absolute position, so must set height*/
position: relative;
}
.same-line div{
display: inline-block;
position: absolute;
}
.on-the-left{
left:0px;
}
.on-the-center{
left: 0%;
right: 0%;
text-align: center;
}
.on-the-right{
right: 0px;
}
<div class="same-line">
<div class="on-the-left" >it's Left</div>
<div class="on-the-center" >this Centrer bla bla bla</div>
<div class="on-the-right" >it's Right</div>
</div>
Une variante de l'excellente solution de JCBiggar consiste à ignorer la largeur et à aligner le texte pour .alignright, mais simplement à le faire flotter à droite. L'avantage de ceci est que cela supprime le souci que les éléments internes aient des marges ou des marges intérieures définies, faisant que 33.33% * 3 dépasse la largeur à 100% de l'élément conteneur. Le placement souhaité de .alignright peut être effectué beaucoup plus simplement.
Le CSS serait alors:
.alignleft {
float: left;
width:33.33333%;
text-align:left;
padding-left: 10px;
}
.aligncenter {
float: left;
width:33.33333%;
text-align:center;
}
.alignright {
float: right;
padding-right: 10px;
}
Cela a bien fonctionné pour moi lorsque j'avais des éléments qui nécessitaient des marges de remplissage (et ne pouvaient pas être représentés sous forme de pourcentages) - comme indiqué ci-dessus dans le CSS.
<table style="width:100%;">
<tr>
<td style="text-align:left;"><p>left</p></td>
<td style="text-align:center;"><p>center</p></td>
<td style="text-align:right;"><p>right</p></td>
</tr>
</table>