我想从ul中删除所有缩进。我试着把边距、填充、文本缩进设置为0,但没有用。似乎将文本缩进设置为负数是可行的——但这真的是消除缩进的唯一方法吗?


当前回答

现场演示:https://jsfiddle.net/h8uxmoj4/

ol, ul {
  padding-left: 0;
}

li {
  list-style: none;
  padding-left: 1.25rem;
  position: relative;
}

li::before {
  left: 0;
  position: absolute;
}

ol {
  counter-reset: counter;
}

ol li::before {
  content: counter(counter) ".";
  counter-increment: counter;
}

ul li::before {
  content: "●";
}

由于最初的问题要求不明确,我试图在其他答案的指导方针中解决这个问题。特别是:

将列表项目符号与段落外文本对齐 将同一列表项中的多行对齐

我还想要一个解决方案,不依赖于浏览器同意使用多少填充。为了完整起见,我添加了一个有序列表。

其他回答

你能提供一个链接吗? 谢谢 我可以看看 很可能你的css选择器不够强大,或者你可以试试

填充:0 !重要;

去除衬垫:

padding-left: 0;

设置列表样式和左填充为空。

ul {
    list-style: none;
    padding-left: 0;
}​

申{ list-style:郎; padding-left: 0; 的 <德> < li > a < / li > < li > b < / li > < li > c < / li > < /德>

为了保持项目符号,你可以将list-style: none替换为list-style-position: inside或简写list-style: inside:

ul {
  list-style-position: inside;
  padding-left: 0;
}

申{ list-style-position:内心; padding-left: 0; 的 <德> < li > a < / li > < li > b < / li > < li > c < / li > < /德>

这样做内联,我设置margin为0 (ul style="margin:0px")。项目符号与段落对齐,没有突出。

下面的方法对我很有效。 在Chrome、Edge和Firefox(需要特殊处理)中。 项目符号被保留,并与周围的段落在同一行。

ul {
  padding-left: 0;
  margin-left: 17px;
}

/* Different value for Firefox */
@-moz-document url-prefix() {
  ul {
    margin-left: 14px;
  }
}