Список вертикального выравнивания текста в середине со списком-образ-образ

Я пытаюсь вертикально выровнять некоторый текст внутри списка li и иметь проблемы. Прежде всего вам нужно знать, что я заменил свой стиль в стиле списка с помощью настраиваемого образа. Это мой CSS:

ul.cogs li { 
    list-style-image: url(Images/li_cog.png); 
    height: 50px; 
    line-height: 50px; 
}

Я попытался понять, есть ли способ получить текст для выравнивания по середине. Я пробовал:

vertical-align: middle;

который не работал, поэтому я попробовал:

line-height: 50px;

который также не работал, поэтому я попробовал:

display: table

который работал, но изображение исчезает из элемента списка....

Кто-нибудь знает, как заставить это работать?

Ответ 1

Проблема с использованием list-style-image заключается в том, что вы не можете выровнять текст, лучше всего использовать элемент background-image для li, а затем используйте padding-left для ваших li элементов.

Багги-демонстрация (проблема, с которой вы сталкиваетесь)

Демо

ul li {
    background-image: url(http://png-5.findicons.com/files/icons/2222/gloss_basic/32/bullet_black.png);
    background-repeat: no-repeat;
    line-height: 30px;
    padding-left: 30px;
}

ul {
    margin: 50px;
}

Ответ 2

у вас может быть

<li><span style="top:-5px; position:relative;">Text shifted 5px upper</span></li>

Ответ 3

Как насчет

ul.cogs li {
    list-style-image: url(Images/li_cog.png); 
    height: 50px; 
    line-height: 50px;  
    position: relative;
}

ul li span {
    position: absolute;
    top: (x)px;
    left: (x)px;
}