Con el siguiente HTML, ¿cuál es el método más fácil para mostrar la lista como dos columnas?
<ul>
<li>A</li>
<li>B</li>
<li>C</li>
<li>D</li>
<li>E</li>
</ul>
Pantalla deseada:
A B
C D
E
La solución debe poder funcionar en Internet Explorer.
Respuestas:
Navegadores modernos
aproveche el módulo de columnas css3 para admitir lo que está buscando.
http://www.w3schools.com/cssref/css3_pr_columns.asp
CSS:
http://jsfiddle.net/HP85j/8/
Navegadores heredados
Desafortunadamente para el soporte de IE necesitará una solución de código que implique la manipulación de JavaScript y dom. Esto significa que cada vez que cambie el contenido de la lista, deberá realizar la operación para reordenar la lista en columnas y volver a imprimirla. La solución a continuación utiliza jQuery por brevedad.
http://jsfiddle.net/HP85j/19/
HTML:
JavaScript:
CSS:
EDITAR:
Como se señala a continuación, esto ordenará las columnas de la siguiente manera:
mientras que el OP solicitó una variante que coincida con lo siguiente:
Para lograr la variante, simplemente cambie el código a lo siguiente:
fuente
A B
(el segundo elemento debe agregarse a la derecha), pero en sus ejemplos esA E
.Estaba buscando la solución de @ jaider que funcionó, pero estoy ofreciendo un enfoque ligeramente diferente con el que creo que es más fácil de trabajar y que he visto que es bueno en todos los navegadores.
De forma predeterminada, la lista no ordenada muestra la posición de la viñeta en el exterior, pero luego en algunos navegadores podría causar algunos problemas de visualización en función de la forma en que el navegador diseña su sitio web.
Para que se muestre en el formato:
etc. use lo siguiente:
Esto debería resolver todos sus problemas al mostrar columnas. Todo lo mejor y gracias @jaider ya que su respuesta me ayudó a guiarme a descubrir esto.
fuente
Intenté publicar esto como un comentario, pero no pude hacer que las columnas se mostraran correctamente (según su pregunta).
Usted está pidiendo:
AB
discos compactos
mi
... pero la respuesta aceptada como la solución devolverá:
ANUNCIO
SER
C
... entonces la respuesta es incorrecta o la pregunta es.
Una solución muy simple sería establecer el ancho de su
<ul>
y luego flotar y establecer el ancho de sus<li>
elementos de esta maneraEjemplo aquí http://jsfiddle.net/Jayx/Qbz9S/1/
Si su pregunta es incorrecta, se aplican las respuestas anteriores (con una solución JS por falta de soporte de IE).
fuente
Me gusta la solución para los navegadores modernos, pero faltan las viñetas, así que agrego un pequeño truco:
http://jsfiddle.net/HP85j/419/
fuente
list-style-position: inside;
es una mejor solución para que las balas se muestren correctamente.Aquí hay una posible solución:
Retazo:
Y ya está hecho.
Para 3 columnas use el
li
ancho como 33%, para 4 columnas use 25% y así sucesivamente.fuente
Esta es la forma más sencilla de hacerlo. CSS solamente.
fuente
Puede usar CSS solo para establecer dos columnas o más
fuente
Esto se puede lograr usando la propiedad css de recuento de columnas en el div padre,
me gusta
mira esto para más detalles.
Cómo hacer que la lista DIV flotante aparezca en columnas, no en filas
fuente
column-count
no mostrará los artículos en el orden correcto. Por ejemplo, la visualización deseada en la primera línea esA B
(el segundo elemento debe agregarse a la derecha), pero si lo usa,column-count
lo seráA E
.Puede hacer esto realmente fácilmente con el complemento jQuery-Columns, por ejemplo, para dividir un ul con una clase de .mylist que haría
Aquí hay un ejemplo en vivo en jsfiddle
Me gusta más que con CSS porque con la solución CSS no todo se alinea verticalmente en la parte superior.
fuente
<ul>
lista en varias listas ... Eso podría complicar otras cosas.¡más una respuesta después de unos años!
en este artículo: http://csswizardry.com/2010/02/mutiple-column-lists-using-one-ul/
HTML:
CSS:
fuente
En
updateColumns()
necesidadif (column >= columns.length)
en lugar deif (column > columns.length)
a la lista de todos los elementos (C se omite por ejemplo) para:http://jsfiddle.net/e2vH9/1/
fuente
Con Bootstrap ... Esta respuesta ( https://stackoverflow.com/a/23005046/1128742 ) me hizo apuntar hacia esta solución:
http://jsfiddle.net/patrickbad767/472r0ynf/
fuente
La solución heredada en la respuesta principal no funcionó para mí porque quería afectar varias listas en la página y la respuesta asume una lista única además de que usa un poco de estado global. En este caso, quería alterar cada lista dentro de un
<section class="list-content">
:fuente
Aunque encontré la respuesta de Gabriel para trabajar hasta cierto punto, encontré lo siguiente al intentar ordenar la lista verticalmente (primero ul AD y segundo ul EG):
He revisado el JQuery para que lo anterior no ocurra.
fuente
Thisd fue una solución perfecta para mí, buscándolo durante años:
http://css-tricks.com/forums/topic/two-column-unordered-list/
fuente
Abdul
en su respuesta, idéntico incluso al ancho y la ID utilizados.