使用文本按比例对齐列表样式图像

时间:2013-02-05 14:13:50

标签: html css list css3

所以我有

<ul>
  <li>Hello</li>
</ul>

li {
    list-style-image: url(../img/bullet.png); /* 13x13 px */
    /* line-height: 13px; */
    /* vertical-align: middle; */
    padding-left: 5px;
}

看起来像

enter image description here

你可以看到<li>的文字和图像元素没有垂直对齐(图像高于文字),我尝试应用行高和垂直对齐(注释掉代码),但它没有甚至没法。有没有办法实现良好的一致性?

5 个答案:

答案 0 :(得分:18)

填充只会影响元素内部的任何内容 - 在您的情况下为文本。

唯一可用的位置调整属性为list-style-position,但唯一允许的值为inheritinsideoutside。最常见的做法是使用:

list-style: none;

然后将所需图像应用为<li>的背景

li {
    /** the image will be vertically aligned in the center **/
    background: url(../img/bullet.png) left center no-repeat; 

    /** move the text to the right **/
    padding-left: 20px; 
}

答案 1 :(得分:1)

可以为li-tag定义img-tag或background:url(..)而不是“list-style-image”

答案 2 :(得分:1)

你可以

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

答案 3 :(得分:0)

如果每个列表项只有一行,则可以向padding-bottom元素添加一些li

答案 4 :(得分:0)

我还需要在背景属性

中添加“no-repeat”