2011-06-24 10 views
12

Si tuviera una lista como la siguiente:Wrap una lista a la derecha

<ul> 
    <li>Alex</li> 
    <li>James</li> 
    <li>Thomas</li> 
    <li>Is</li> 
    <li>Asking</li> 
    <li>Questions</li> 
    <li>On</li> 
    <li>Stackoverflow</li> 
</ul> 

El valor por defecto se mostrará como:

* Alex 
* James 
* Thomas 
* Is 
* Asking 
* Questions 
* On 
* Stackoverflow 

Lo CSS debería utilizar para conseguir que se muestran como :

* Alex  * Questions 
* James * On 
* Thomas * Stackoverflow 
* Is 
* Asking 

Gracias de antemano ...

+0

Hay una interesante artículo sobre una lista aparte sobre este mismo tema: http://www.alistapart.com/ artículos/multicolumnlists/ –

+0

Parece interesante, le daré un tyr. Gracias @Jamie Dixon – Alex

+0

@Jamie Dixon - gran sugerencia, lamentablemente tengo que mantener estos en el orden que indiqué. – Alex

Respuesta

13

Para los navegadores modernos

ul{ 
    -ms-column-count: 2; 
    -o-column-count: 2; 
    -moz-column-count: 2; 
    -khtml-column-count: 2; 
    column-count: 2; 
    } 
+0

nice, no sabía nada de 'column-count' - aquí hay un violín para ir con: http://jsfiddle.net/pxfunc/zRwZM/ – MikeM

+1

Voy a rodar con esto para navegadores más nuevos (¡mejores!) y uso la sugerencia de @Jamie Dixon para navegadores más antiguos. – Alex

1

Afaik esto no es posible con CSS2. Especialmente si desea mantener el orden como lo mencionó.

Sin embargo, hay un complemento jQuery que hace exactamente lo que usted describió.

http://www.christianyates.com/blog/mmm-geeky/multi-column-lists-jquery-alternative-method

+0

Hmmm ... es una opción. Estoy tratando de mantener jQuery al mínimo. – Alex

+0

El resultado es similar a la publicación de Nikhil Bhandari pero también funciona para navegadores más antiguos (por ejemplo, IE7 o IE8) – jantimon

2

Si le gustaría establecidos width para cada <li> y perdidos orden de los elementos, que aquí es de demostración: http://jsfiddle.net/dpXz2/

li{ 
    display: block; 
    float: left; 
    width: 75px; 
} 

ul{ 
    width: 150px; 
} 
+0

Lamentablemente necesito mantener estos en el orden que indiqué, por lo que este método no funciona. Gracias aunque – Alex

Cuestiones relacionadas