ChatGPT解决这个技术问题 Extra ChatGPT

我需要一个没有任何项目符号的无序列表

我创建了一个无序列表。我觉得无序列表中的项目符号很烦人,所以我想删除它们。

是否可以有一个没有项目符号的列表?


V
Vadim Ovchinnikov

您可以通过将父元素(通常是 <ul>)的 CSS 上的 list-style-type 设置为 none 来删除项目符号,例如:

ul {
  list-style-type: none;
}

如果您还想删除缩进,您可能还想在其中添加 padding: 0margin: 0

请参阅 Listutorial,了解列表格式化技术的精彩演练。


@tovmeod 似乎在我的 IE9(在 Win7 上)中运行良好。 (这是一个复杂的页面,而不是一个简单的 POC,也许其他东西改变了行为)
如果您像我一样也在寻找如何删除缩进,请参阅此 - stackoverflow.com/a/13939142/846727
哦,我回来这里复制/粘贴多少次了 :)
很好的填充和边距
在下面@shaneb 的答案中,有一个更优雅的解决方案可以显示不带项目符号的列表。它利用 HTML5 对象“描述列表”。
G
Giorgi Gvimradze

如果您使用的是 Bootstrap,它有一个“无样式”类:

删除列表项的默认列表样式和左侧填充(仅限直接子项)。

引导程序 2:

<ul class="unstyled">
   <li>...</li>
</ul>

http://twitter.github.io/bootstrap/base-css.html#typography

引导程序 3 和 4:

<ul class="list-unstyled">
   <li>...</li>
</ul>

引导程序 3:http://getbootstrap.com/css/#type-lists

引导程序 4:https://getbootstrap.com/docs/4.3/content/typography/#unstyled

引导程序 5:https://getbootstrap.com/docs/5.0/content/typography/#unstyled


如果我们列出每个 CSS 框架的类,我们会在 StackOverflow 上搞得一团糟。快速的 Google 搜索显示,Bootstrap 在其巅峰时期仅被 2% 的网站使用,而且随着 flexbox 和 css grid 等更明智的解决方案的引入,这一比例肯定会下降。
实际上,这个答案正是我想要的。而 Bootstrap 被整个互联网的 3.6% 使用,所以它并没有下降。 trends.builtwith.com/docinfo/Twitter-Bootstrap 快速的 Google 搜索显示,Bootstrap 一直被列为“最流行的 CSS 框架”类别。
@PJBrunet 如果我们列出每个 CSS 框架的类,我们将会有更多的人得到他们问题的答案。此外,OP 没有提到他只对纯 CSS 解决方案感兴趣。
如果 ul 是唯一的,我会在这里使用 id 而不是 class。如果没有,请继续上课。
j
johannchopin

您需要使用 list-style: none;

<ul style="list-style: none;">
    <li>...</li>
</ul>

请注意,内联 css 会覆盖文件中的 css。根据应用程序/开发实践,它可能真的很烦人。
f
fish-404

对先前答案的小改进:如果更长的行溢出到其他屏幕行,则使它们更具可读性:

ul, li {list-style-type: none;}

li {padding-left: 2em; text-indent: -2em;}

有效,但仅适用于 IE8
不必在 ulli 上都加上 list-style-type: none;。你可以只做一个。
P
Peter Mortensen

如果您无法使其在 <ul> 级别工作,您可能需要将 list-style-type: none; 放在 <li> 级别:

<ul>
    <li style="list-style-type: none;">Item 1</li>
    <li style="list-style-type: none;">Item 2</li>
</ul>

您可以创建一个 CSS 类来避免这种重复:

<style>
ul.no-bullets li
{
    list-style-type: none;
}
</style>

<ul class="no-bullets">
    <li>Item 1</li>
    <li>Item 2</li>
</ul>

必要时,使用 !important

<style>
ul.no-bullets li
{
    list-style-type: none !important;
}
</style>

使用 !important 是不好的做法并且是不必要的,如果代码不起作用,请确保您的新代码低于旧代码。在大型项目中,当他们想让事情变得动态时!important 可能会变得非常有问题。
D
Deni J.

我在 ul 和 li 上都使用了 list-style 来删除项目符号。我想用自定义字符替换项目符号,在本例中为“破折号”。这提供了一个很好的缩进效果,当文本换行时效果很好。

ul.dashed-list { 列表样式:无外无; } ul.dashed-list li:before { content: "\2014";向左飘浮;边距:0 0 0 -27px;填充:0; } ul.dashed-list li { 列表样式类型:无; }

  • 文本
  • 文本


S
SK-the-Learner

如果您想仅使用纯 HTML 来完成此操作,此解决方案将适用于所有主要浏览器:

描述列表

只需使用以下 HTML:

列表项 1
子项 1.1
列表项 2
子项 2.1
子项项目 2.2
子项目 2.3
列表项目 3
子项目 3.1

此处示例:https://jsfiddle.net/zumcmvma/2/

此处参考:https://www.w3schools.com/tags/tag_dl.asp


如果您要使用此方法,请使用语义正确的方式输入要在 <dt> 中定义的术语,并在 <dd> 中输入该术语的定义。
这是问题的最佳答案,尽管提出这个问题的人不知道这个更优雅的解决方案,所以他们会不同意,但这个解决方案产生了最好的结果。
P
Peter Mortensen

要完全删除 ul 默认样式:

    list-style-type: none;

    margin: 0;
    margin-block-start: 0;
    margin-block-end: 0;
    margin-inline-start: 0;
    margin-inline-end: 0;
    padding-inline-start: 0;

f
fish-404

这对列表进行垂直排序,没有项目符号。只需一行!

li {
    display: block;
}

技术说明:这是可行的,因为它覆盖了 <li> 的默认 display 值,即 display: list-item;
A
Abuhanzala Rehanansari
ul{list-style-type:none;}

只需设置无序列表的样式为无。


这个答案中是否有一些尚未提及的新内容?
V
Vthechamp

如果您正在开发现有主题,则该主题可能具有自定义列表样式。

因此,如果您无法在 ul 或 li 标记中使用 list-style: none; 更改列表样式,请首先使用 !important 检查,因为可能其他一些样式行会覆盖您的样式。如果 !important 修复了它,您应该找到更具体的选择器并清除 !important

li {
    list-style: none !important;
}

如果不是这种情况,请检查 li:before。如果它包含内容,则执行以下操作:

li:before {
    display: none;
}

m
m4n0

您可以使用 ::marker 伪元素隐藏它们。

透明 :: 标记

ul li::marker {
  color: transparent;
}

ul li::marker { 颜色:透明; } ul { padding-inline-start: 10px; /* 只是为了重置浏览器初始填充 */ }

  • 项目符号很麻烦
  • 我想删除它们。
  • 嘿! ::标记救援

::标记空内容

ul li::marker {
  content: "";
}

ul li::marker { 内容:“”; }

  • 子弹很麻烦
  • 我想删除它们
  • 嘿! ::标记救援

当您需要从特定列表项中删除项目符号时会更好。

ul li:nth-child(n)::marker { /* Replace n with the list item's position*/
   content: "";
}

ul li:not(:nth-child(2))::marker { 内容:“”; }

  • 子弹很麻烦
  • 但是我可以使用 ::marker 来忍受它
  • 不会再这样了


O
Oracular Man
 <div class="custom-control custom-checkbox left">
    <ul class="list-unstyled">
        <li>
         <label class="btn btn-secondary text-left" style="width:100%;text-align:left;padding:2px;">
           <input type="checkbox" style="zoom:1.7;vertical-align:bottom;" asp-for="@Model[i].IsChecked" class="custom-control-input" /> @Model[i].Title
         </label>
        </li>
     </ul>
</div>

P
Peter Mortensen

我尝试并观察到:

header ul {
   margin: 0;
   padding: 0;
}

这实际上并没有移除子弹。他们只是被推到屏幕外。
P
Peter Mortensen

如果您想在不使用 CSS 的情况下保持简单,我只需在代码行中添加一个 &nbsp;。即<table></table>

是的,它留下了一些空间,但这不是一件坏事。


-1 简单吗?没有CSS?这就是为什么许多网站都处于令人震惊的状态。 CSS 增加了简单性。表格不是前进的方向。