Eu tenho uma horizontal <ul>
e preciso centralizar cada uma <li>
nela verticalmente. Minha marcação está abaixo. Cada <li>
um tem uma borda e eu preciso que os itens, bem como seu conteúdo, fiquem no meio verticalmente. Por favor ajude; Eu sou novo em 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>
Respostas:
Presumo que, como você está usando uma declaração XML, não está se preocupando com o IE ou navegadores mais antigos.
Então você pode usar
display:table-cell
edisplay:table-row
gostar:fonte
<?xml?>
declaração? Todas as versões do IE realmente não suportam XHTML. Acho que você precisa ler Sending XHTML as text / html Considered Harmful: hixie.ch/advocacy/xhtmlAqui está um bom:
Defina
line-height
igual a tudo o queheight
é; Funciona como um encanto!Por exemplo:
fonte
Você pode usar o flexbox para isso.
Uma explicação detalhada de como usar o flexbox pode ser encontrada aqui .
fonte
Eu tive o mesmo problema. Experimente isso.
fonte