J'ai une horizontale <ul>
et j'ai besoin de centrer chacun <li>
d'eux verticalement. Mon balisage est ci-dessous. Chacun <li>
a une bordure, et j'ai besoin que les éléments ainsi que leur contenu soient au milieu verticalement. Veuillez aider; Je suis nouveau sur CSS.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<style type="text/css">
.toolbar li
{
border: solid 1px black;
display: block;
float: left;
height: 100px;
list-style-type: none;
margin: 10px;
vertical-align: middle;
}
.toolbar li.button
{
height: 50px;
}
</style>
</head>
<body>
<div class="toolbar">
<ul>
<li><a href="#">first item<br />
first item<br />
first item</a></li>
<li><a href="#">second item</a></li>
<li><a href="#">last item</a></li>
<li class="button"><a href="#">button<br />
button</a></li>
</ul>
</div>
</body>
</html>
Réponses:
Je suppose que puisque vous utilisez une déclaration XML, vous ne vous inquiétez pas d'IE ou d'anciens navigateurs.
Ainsi, vous pouvez utiliser
display:table-cell
etdisplay:table-row
aimer ainsi:la source
<?xml?>
déclaration? Toutes les versions d'IE ne supportent pas vraiment XHTML. Je pense que vous devrez peut-être lire Envoyer du XHTML sous forme de texte / html considéré comme nocif: hixie.ch/advocacy/xhtmlEn voici une bonne:
Définir
line-height
égal à tout ce quiheight
est; fonctionne comme un charme!Par exemple:
la source
Vous pouvez utiliser flexbox pour cela.
Une explication détaillée de l'utilisation de flexbox peut être trouvée ici .
la source
J'ai eu le même problème. Essaye ça.
la source