Mam poziomy <ul>
i muszę wyśrodkować <li>
w nim każdy w pionie. Moje znaczniki są poniżej. Każdy <li>
ma obramowanie, a elementy oraz ich zawartość muszą znajdować się na środku w pionie. Proszę pomóż; Jestem nowy w 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>
Odpowiedzi:
Zakładam, że skoro używasz deklaracji XML, nie martwisz się o IE lub starsze przeglądarki.
Możesz więc używać
display:table-cell
idisplay:table-row
tak:<?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 ul { display:table-row; } .toolbar ul li { display: table-cell; height: 100px; list-style-type: none; margin: 10px; vertical-align: middle; } .toolbar ul li a { display:table-cell; vertical-align: middle; height:100px; border: solid 1px black; } .toolbar ul li.button a { height:50px; border: solid 1px black; } </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ódło
<?xml?>
deklarację? Wszystkie wersje IE nie obsługują standardu XHTML. Myślę, że możesz potrzebować przeczytać Wysyłanie XHTML jako tekst / html Uważane za szkodliwe: hixie.ch/advocacy/xhtmlOto dobry:
Ustaw
line-height
równe temu, coheight
jest; działa jak marzenie!Na przykład:
li { height: 30px; line-height: 30px; }
źródło
Możesz do tego użyć flexbox.
ul { display: flex; align-items: center; }
Szczegółowe wyjaśnienie sposobu korzystania z Flexbox można znaleźć tutaj .
źródło
Miałem ten sam problem. Spróbuj tego.
<nav> <ul> <li><a href="#">AnaSayfa</a></li> <li><a href="#">Hakkımızda</a></li> <li><a href="#">İletişim</a></li> </ul> </nav>
@charset "utf-8"; nav { background-color: #9900CC; height: 80px; width: 400px; } ul { list-style: none; float: right; margin: 0; } li { float: left; width: 100px; line-height: 80px; vertical-align: middle; text-align: center; margin: 0; } nav li a { width: 100px; text-decoration: none; color: #FFFFFF; }
źródło