我想控制子弹在<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/


当前回答

如果您不希望添加额外的标记,例如<span>,您可以使用:

list-style-position:内部;将列表样式从左侧移动到更接近文本的位置 如果你仍然需要拉近列表项,你可以使用li元素上的::before选择器将文本移向项目符号。

    ul {
        list-style-type: disc;
        list-style-position: inside;
        padding-left: 16px; /* or margin */
    }

    li::before {
        content: '';
        margin-left: -8px;
    }

列表项文本 列表项文本 列表项文本 列表项文本

其他回答

在li上使用文本缩进效果最好。

文本缩进:-x px;会让子弹更靠近李,反之亦然。

在IE的旧版本中,在负左边使用相对span可能无法正常工作。 附注:尽量避免给出职位。

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

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

如果您不希望添加额外的标记,例如<span>,您可以使用:

list-style-position:内部;将列表样式从左侧移动到更接近文本的位置 如果你仍然需要拉近列表项,你可以使用li元素上的::before选择器将文本移向项目符号。

    ul {
        list-style-type: disc;
        list-style-position: inside;
        padding-left: 16px; /* or margin */
    }

    li::before {
        content: '';
        margin-left: -8px;
    }

列表项文本 列表项文本 列表项文本 列表项文本

没有人提到::marker属性

它允许将空间设置为小于浏览器默认值。

Ul li::marker { 内容:“•”;/*作为副作用,将空格设置为零*/ 字体:1.2em/1 sans-serif;/*调整子弹大小*/ } Ul li { padding-left: .2em;/*完全控制空格*/ } < ul > <李>一 <李>两个 <李>三 < / ul >

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

优点:

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

缺点:

试一试 来 找到 一:)