Necesito una lista desordenada sin viñetas

2510

He creado una lista desordenada. Siento que las viñetas en la lista desordenada son molestas, por lo que quiero eliminarlas.

¿Es posible tener una lista sin viñetas?

praveenjayapal
fuente

Respuestas:

3692

Puede eliminar las viñetas configurando list-style-typea noneen el CSS para el elemento primario (generalmente a <ul>), por ejemplo:

ul {
  list-style-type: none;
}

También es posible que desee agregar padding: 0y margin: 0si desea eliminar también la sangría.

Consulte el Tutorial de listas para obtener un excelente tutorial de las técnicas de formato de listas.

Paul Dixon
fuente
@tovmeod parece funcionar bien en mi IE9 (en Win7). (es una página compleja, no un simple POC, tal vez algo más cambió el comportamiento)
David Balažic
1
Si eres como yo y también estás buscando cómo eliminar la sangría, mira esto - stackoverflow.com/a/13939142/846727
Kunal
66
Oh, cuántas veces he vuelto aquí para copiar / pegar :)
Jonathan.Brink
Buen toque en el relleno y los márgenes
Evgenii Klepilin
588

Si está utilizando Bootstrap, tiene una clase "sin estilo":

Elimine el estilo de lista predeterminado y el relleno izquierdo en los elementos de la lista (solo elementos secundarios inmediatos).

Bootstrap 2:

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

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

Bootstrap 3 y 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
fuente
2
Si enumeramos las clases para cada marco CSS, tendríamos un desastre en StackOverflow. Una búsqueda rápida en Google revela que Bootstrap solo fue utilizado por el 2% de los sitios web en su apogeo, y seguramente eso está cayendo con la introducción de soluciones más sensatas como flexbox y css grid.
PJ Brunet
44
En realidad, esta respuesta es exactamente lo que estaba buscando. Y Bootstrap es utilizado por el 3.6% de todo el Internet, por lo que no está cayendo. trends.builtwith.com/docinfo/Twitter-Bootstrap Una búsqueda rápida en Google revela que Bootstrap se coloca constantemente en la categoría de "marcos CSS más populares".
Bobort
209

Necesitas usar list-style: none;

<ul style="list-style: none;">
    <li>...</li>
</ul>
karim79
fuente
44
Tenga en cuenta que css en línea anula css en los archivos. Dependiendo de las prácticas de aplicación / desarrollo, puede ser realmente molesto.
Mark Baijens
39

Pequeño refinamiento a las respuestas anteriores: para hacer que las líneas más largas sean más legibles si se extienden a líneas de pantalla adicionales:

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

li {padding-left: 2em; text-indent: -2em;}
charliehoward
fuente
Funciona, pero solo para IE8
Underverse
No es necesario ponerse list-style-type: none;tanto el ulcomo el li. Solo puedes hacer uno.
mfluehr
14

Si no puede hacer que funcione en el <ul>nivel, es posible que deba colocarlo list-style-type: none;en el <li>nivel:

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

Puede crear una clase CSS para evitar esta repetición:

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

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

Cuando sea necesario, use !important:

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

Usé el estilo de lista tanto en ul como en li para eliminar las viñetas. Quería reemplazar las viñetas con un carácter personalizado, en este caso un 'guión'. Eso da un efecto de sangría agradable que funciona cuando el texto se ajusta.

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
fuente
5

Para eliminar completamente el ulestilo predeterminado:

    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
fuente
2

Si desea lograr esto solo con HTML puro , esta solución funcionará en todos los principales navegadores:

Descripción Listas

Simplemente usando el siguiente HTML:

<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>

Lo que producirá una lista similar a la siguiente:

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

Ejemplo aquí: https://jsfiddle.net/zumcmvma/2/

Referencia aquí: https://www.w3schools.com/tags/tag_dl.asp

ShaneB
fuente
1
Si va a usar este método, use la forma semánticamente adecuada de ingresar un término para definirlo <dt>y la definición de ese término en <dd>.
Bobort
2

Esto ordena una lista verticalmente sin viñetas. En una sola línea!

li {
    display: block;
}
mate
fuente
Nota técnica: esto funciona porque anula el displayvalor predeterminado de <li>, que es display: list-item;.
mfluehr
0

Si está desarrollando un tema existente, es posible que el tema tenga un estilo de lista personalizado.

así que si no puede cambiar el estilo de la lista usando las list-style: none;etiquetas ul o li, primero verifique !importantporque tal vez alguna otra línea de estilo está sobrescribiendo su estilo, si lo arregla, es importante que encuentre un selector más específico y borre lo importante .

Si no es el caso, compruebe que li:beforetal vez tenga el contenido. entonces hazlo:

li:before { dispaly: none; }
Ali_Hr
fuente
-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>
Hombre oracular
fuente
-1

Lo intenté y observé:

header ul {
   margin: 0;
   padding: 0;
}
Dadhich Sourav
fuente
1
Esto en realidad no elimina las balas. Simplemente son empujados fuera de la pantalla.
mfluehr
-8

En caso de que quiera mantener las cosas simples sin recurrir a CSS, solo pongo un &nbsp;en mis líneas de código. Es decir, <table></table>.

Sí, deja algunos espacios, pero eso no es malo.

Phil
fuente
11
-1 simple? Sin CSS? Es por eso que muchos sitios web están en el estado impactante que son. CSS agrega simplicidad. Las tablas no son el camino a seguir.
webnoob