J'ai besoin d'une liste non ordonnée sans balles

2510

J'ai créé une liste non ordonnée. Je pense que les balles dans la liste non ordonnée sont gênantes, donc je veux les supprimer.

Est-il possible d'avoir une liste sans puces?

praveenjayapal
la source

Réponses:

3692

Vous pouvez supprimer des balles en mettant l' list-style-typeà nonele CSS pour l'élément parent (typiquement <ul>), par exemple:

ul {
  list-style-type: none;
}

Vous pouvez également vouloir ajouter padding: 0et margin: 0à cela si vous souhaitez également supprimer l'indentation.

Consultez Listutorial pour une présentation détaillée des techniques de formatage de liste.

Paul Dixon
la source
@tovmeod Semble fonctionner correctement dans mon IE9 (sur Win7). (c'est une page complexe, pas un simple POC, peut-être que quelque chose d'autre a changé le comportement)
David Balažic
1
Si vous êtes comme moi et que vous cherchez également à supprimer le retrait, voyez ceci - stackoverflow.com/a/13939142/846727
Kunal
6
Oh, combien de fois je suis revenu ici pour le copier / coller :)
Jonathan.Brink
Belle touche sur le rembourrage et les marges
Evgenii Klepilin
588

Si vous utilisez Bootstrap, il a une classe "sans style":

Supprimez le style de liste par défaut et le remplissage gauche des éléments de la liste (enfants immédiats uniquement).

Bootstrap 2:

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

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

Bootstrap 3 et 4:

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

Bootstrap 3: http://getbootstrap.com/css/#type-lists

Bootstrap 4: https://getbootstrap.com/docs/4.3/content/typography/#unstyled

Scott Stafford
la source
2
Si nous listions les classes pour chaque framework CSS, nous aurions un gâchis sur StackOverflow. Une recherche rapide sur Google révèle que Bootstrap n'était utilisé que par 2% des sites Web à son apogée, et cela est sûrement en baisse avec l'introduction de solutions plus sensées comme la flexbox et la grille css.
PJ Brunet
4
En fait, cette réponse est exactement ce que je cherchais. Et Bootstrap est utilisé par 3,6% de tout Internet, donc il ne tombe pas. trends.builtwith.com/docinfo/Twitter-Bootstrap Une recherche rapide sur Google révèle que Bootstrap est systématiquement placé dans la catégorie "frameworks CSS les plus populaires".
Bobort
209

Vous devez utiliser list-style: none;

<ul style="list-style: none;">
    <li>...</li>
</ul>
karim79
la source
4
Sachez que css en ligne remplace css dans les fichiers. Selon les pratiques d'application / de développement, cela peut être très ennuyeux.
Mark Baijens
39

Petit raffinement des réponses précédentes: Pour rendre les lignes plus longues plus lisibles si elles débordent sur des lignes d'écran supplémentaires:

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

li {padding-left: 2em; text-indent: -2em;}
charliehoward
la source
Fonctionne, mais uniquement pour IE8
Underverse
Il n'est pas nécessaire de mettre list-style-type: none;à la fois le ulet le li. Vous pouvez juste en faire un.
mfluehr
14

Si vous ne parvenez pas à le faire fonctionner au <ul>niveau, vous devrez peut-être placer le list-style-type: none;au <li>niveau:

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

Vous pouvez créer une classe CSS pour éviter cette répétition:

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

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

Si nécessaire, utilisez !important:

<style>
ul.no-bullets li
{
    list-style-type: none !important;
}
</style>
Antonio Ooi
la source
14

J'ai utilisé le style de liste à la fois sur ul et li pour supprimer les balles. Je voulais remplacer les puces par un caractère personnalisé, dans ce cas un «tiret». Cela donne un effet joliment indenté qui fonctionne lorsque le texte s'enroule.

ul.dashed-list {
    list-style: none outside none;
}

ul.dashed-list li:before {
    content: "\2014";
    float: left;
    margin: 0 0 0 -27px;
    padding: 0;
}

ul.dashed-list li {
    list-style-type: none;
}
<ul class="dashed-list">
  <li>text</li>
  <li>text</li>
</ul>

Chris Halcrow
la source
5

Pour supprimer complètement le ulstyle par défaut:

    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;
Masih Jahangiri
la source
2

Si vous vouliez accomplir cela uniquement avec du HTML pur , cette solution fonctionnera sur tous les principaux navigateurs:

Listes de description

En utilisant simplement le code HTML suivant:

<dl>
  <dt>List Item 1</dt>
    <dd>Sub-Item 1.1</dd>
  <dt>List Item 2</dt>
    <dd>Sub-Item 2.1</dd>
    <dd>Sub-Item 2.2</dd>
    <dd>Sub-Item 2.3</dd>
  <dt>List Item 3</dt>
    <dd>Sub-Item 3.1</dd>
</dl>

Ce qui produira une liste similaire à la suivante:

List Item 1
     Sub-Item 1.1
List Item 2
     Sub-Item 2.1
     Sub-Item 2.2
     Sub-Item 2.3
List Item 3
     Sub-Item 3.1

Exemple ici: https://jsfiddle.net/zumcmvma/2/

Référence ici: https://www.w3schools.com/tags/tag_dl.asp

ShaneB
la source
1
Si vous comptez utiliser cette méthode, utilisez la méthode sémantiquement appropriée pour saisir un terme à définir dans <dt>et la définition de ce terme dans <dd>.
Bobort
2

Cela ordonne une liste verticalement sans puces. En une seule ligne!

li {
    display: block;
}
mat
la source
Note technique: cela fonctionne car il remplace la displayvaleur par défaut de <li>, qui est display: list-item;.
mfluehr le
0

si vous développez un thème existant, il est possible que le thème ait un style de liste personnalisé.

donc si vous ne pouvez pas changer le style de liste en utilisant les list-style: none;balises ul ou li, vérifiez d'abord !importantcar peut-être qu'une autre ligne de style écrase votre style, si! important l'a corrigé, vous devriez trouver un sélecteur plus spécifique et effacer le! important .

si ce n'est pas le cas, vérifiez li:beforepeut - être qu'il a le contenu. alors fais:

li:before { dispaly: none; }
Ali_Hr
la source
-1
 <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>
Homme oraculaire
la source
-1

J'ai essayé et observé:

header ul {
   margin: 0;
   padding: 0;
}
Dadhich Sourav
la source
1
Cela ne supprime pas réellement les balles. Ils sont simplement poussés hors écran.
mfluehr
-8

Dans le cas où vous voulez garder les choses simples sans avoir recours au CSS, je viens de mettre un &nbsp;dans mes lignes de code. -À- dire, <table></table>.

Oui, ça laisse quelques espaces, mais ce n'est pas une mauvaise chose.

Phil
la source
11
-1 Simple? Sans CSS? C'est pourquoi de nombreux sites Web sont dans un état choquant. CSS ajoute de la simplicité. Les tableaux ne sont pas la voie à suivre.
webnoob