4

我正在尝试创建自己的自定义 HTML 列表项目符号,不幸的是我很难对齐文本,有什么提示吗?

我无法更改标记,项目符号必须位于锚标记内:

<li> 
   <a href="#"> <div class="bullet"></div> Text </a> 
</li>

这是我的自定义项目符号和标准项目符号的屏幕:

列表

和 JSFiddle:http: //jsfiddle.net/XSUYE/

4

2 回答 2

3

这是一个工作示例:http: //jsfiddle.net/77PFX/

它使用:before伪元素,可以稍微清理你的标记。项目符号是绝对定位的,因此它们不会干扰<li>.

HTML

<ul class="list">
    <li><a href="#">Text</a></li>
    <li><a href="#" style="color: red">Text that is a bit too long and shows up under our "bullet"</a></li>
    <li><a href="#">Text</a></li>
</ul>

CSS

ul {
    width: 200px;
}

.list {
    list-style-type: none;

}

.list li{
    list-style-type: none;
    position: relative;
    padding-left: 5px;
}
.list li:before{
    content: ' ';
    display: block;
    width: 10px;
    height: 10px;
    background: #eee;
    border: solid 1px #aaa;
    position: absolute;
    top: 3px;
    left: -15px;
}

截屏

截屏

于 2013-09-08T23:15:02.910 回答
0

你能span在纯文本周围加上标签吗?这样你就有了更多的控制权,而子弹仍然留在锚标签内:

在此处输入图像描述

见这里:http: //jsfiddle.net/vzCpp/1/

ul {
    width: 200px;
    font-family: Arial;
    line-height: 1.5em;
}

.list {
    list-style-type: none;
    margin: 0 !important;
    padding: 10px !important;
}

.list a {
    vertical-align: top;
}

.bullet {
    width: 10px;
    height: 10px;
    background: #eee;
    border: solid 1px #aaa;
    display: inline-block;
    margin-right: -12px;
}

.list a span:last-child {
    display: inline-block;
    margin-left: 24px;
    vertical-align: top;
}
于 2013-09-08T23:04:04.573 回答