Если вы знаете высоту изображения (при условии, что это значок), вы можете установить высоту линии на высоту изображения.
Затем он должен работать, установив vertical-align:middle. См. Живой пример в w3schools: http://www.w3schools.com/Css/tryit.asp?filename=trycss_vertical-align
Ответ 4
Вы должны обернуть текст внутри "li"
<li><div><span>My text</span></div></li>
li div{
display: table;
height: 100%;
width: 100%;
}
li span{
display: table-cell;
vertical-align: middle;
}