我想控制子弹在<ol>或<ul>中向右推动<li>的水平空间。

也就是说,不是一直都有

*  Some list text goes
   here.

我希望能把它变成

*         Some list text goes
          here.

or

*Some list text goes
 here.

我环顾四周,但只能找到将整个街区向左或向右移动的说明,例如http://www.alistapart.com/articles/taminglists/


当前回答

可以在列表项上使用padding-left属性(而不是在列表本身上!)。

其他回答

这个应该可以了。一定要把子弹对准外面。你也可以使用CSS伪元素,如果你可以在IE7中向下放置它们。我真的不推荐使用伪元素来做这种事情,但它确实可以控制距离。

ul { list-style: circle outside; width: 100px; } li { padding-left: 40px; } .pseudo, .pseudo ul { list-style: none; } .pseudo li { position: relative; } /* use ISO 10646 for content http://la.remifa.so/unicode/named-entities.html */ .pseudo li:before { content: '\2192'; position: absolute; left: 0; } <ul> <li>Any Browser really</li> <li>List item <ul> <li>List item</li> <li>List item</li> </ul> </li> </ul> <ul class="pseudo"> <li>IE8+ only</li> <li>List item <ul> <li>List item with two lines of text for the example.</li> <li>List item</li> </ul> </li> </ul>

您可以使用ul li:before和背景图像,并分别将position: relative和position:absolute分配给li和li:before。通过这种方式,您可以创建一个图像,并将其定位到任何您想要相对于li的位置。

更多信息w3schools ul { list-style:没有; }

Ul li::before { 内容:“2022 \”; 颜色:黑色; 显示:inline-block; 宽度:8 px;}

当您希望将文本移动到更靠近项目符号的位置时,即使您有多行文本,以下解决方案也很有效。

右边距使您可以将文本移动到更靠近项目符号的位置

文本缩进确保多行文本仍然正确对齐

李:{之前 内容:“”; margin-right: 5 px;/*调整使文本更靠近项目符号*/ } 李{ indent: 5 px;/*对齐文本的第二行*/ } < ul > <li> Item 1…李< / > <li> Item 2…这个项目有大量的文本,导致第二行!请注意,第二行是如何与第一行对齐的!李< / > <li> Item 3…李< / > < / ul >

老问题了,但仍然相关。 我建议使用负文本缩进。 List-style-position必须在外部。

优点:

子弹自动定位正确 改变字体大小不会破坏项目符号的位置 没有额外的元素(也没有::伪元素) 适用于RTL和LTR而不改变CSS。

缺点:

试一试 来 找到 一:)