Comment puis-je utiliser le vertical-align
ainsi que float
dans les propriétés div
? Le vertical-align
fonctionne bien si je n’utilise pas le float
. Mais si j'utilise le float, alors cela ne fonctionne pas. Il est important pour moi d'utiliser le float:right
pour la dernière div.
J'essaie de suivre, si vous supprimez le flottant de toutes les divs, alors cela fonctionnerait bien:
<div class="wrap">
<div class="left">First div, float left, has more text.</div>
<div class="left2">Second div, float left </div>
<div class="right">Third div, float right</div>
</div>
CSS:
.wrap{
width: 500px;
overflow:hidden;
background: pink;
}
.left {
width: 150px;
margin-right: 10px;
background: yellow;
float:left;
vertical-align: middle;
display:inline-block
}
.left2 {
width: 150px;
margin-right: 10px;
background: aqua;
float:left;
vertical-align: middle;
display:inline-block
}
.right{
width: 150px;
background: orange;
float:right;
vertical-align: middle;
display:inline-block
}
Vous devez définir line-height.
<div style="border: 1px solid red;">
<span style="font-size: 38px; vertical-align:middle; float:left; line-height: 38px">Hejsan</span>
<span style="font-size: 13px; vertical-align:middle; float:right; line-height: 38px">svejsan</span>
<div style="clear: both;"></div>
Édité:
La propriété CSS ( vertical-align ) spécifie l'alignement vertical d'un élément inline, inline-block ou table-cell.
Lisez cet article pour Comprendre vertical-align
L'alignement vertical ne fonctionne pas avec les éléments flottants, en effet. En effet, float soulève l'élément du flux normal du document. Vous voudrez peut-être utiliser d’autres techniques d’alignement vertical, telles que celles basées sur transform, display: table, positionnement absolu, hauteur de ligne, js (dernier recours peut-être) ou même le vieux tableau HTML brut (peut-être le premier choix si le contenu est effectivement tabulaire). Vous constaterez qu'il y a un débat animé sur cette question.
Cependant, voici comment aligner verticalement VOS 3 divs:
.wrap{
width: 500px;
overflow:hidden;
background: pink;
}
.left {
width: 150px;
margin-right: 10px;
background: yellow;
display:inline-block;
vertical-align: middle;
}
.left2 {
width: 150px;
margin-right: 10px;
background: aqua;
display:inline-block;
vertical-align: middle;
}
.right{
width: 150px;
background: orange;
display:inline-block;
vertical-align: middle;
}
Vous ne savez pas pourquoi vous avez besoin d'une largeur fixe et d'un affichage: inline-block et float.