我有一个水平线<ul>,我需要将每个<li>垂直线居中。我的标记如下。每个<li>都有一个边框,我需要物品及其内容垂直位于中间。请帮忙; 我是CSS新手。
<ul>
<li>
<?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>
我假设由于您使用的是XML声明,因此您不必担心IE或较旧的浏览器。
所以,你可以使用display:table-cell和display:table-row像这样:
display:table-cell
display:table-row
<?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>