2009-03-02 16 views
5

Sto cercando di capire come creare una lista ordinata incrementata attualmente orientata verso IE6 e IE7.Nidificare gli elementi dell'elenco all'interno degli elementi di un elenco ordinato?

E.G. Si dovrebbe rendere qualcosa come di seguito:

1.0 
    1.1 
    1.2 
    1.3 
2.0 
    2.1 
    2.2 

Da quello che ho capito, questo è possibile creare in CSS con qualcosa di simile:

UL, OL { counter-reset: item; } 
LI { display: block } 
LI:before { content: counters(item, "."); counter-increment: item } 

Tuttavia, naturalmente, IE6 e IE7 non supportano Questo.

Quali opzioni sono disponibili per creare un elenco incrementale corretto in IE6/7? Sono bloccato a dover codificare questo codice.? Sfortunatamente, l'uso di JavaScript non è un'opzione.

Esistono metodologie aggiornate per i nuovi browser?

+0

O btw, grazie Andrew per la correzione di formattazione. –

risposta

0

Se javascript non è un'opzione (e quindi anche io non presumo flash), mi dispiace dire che sei fuori dalle opzioni per una soluzione lato client. Se si dispone di uno script sul lato server che genera il codice HTML, è possibile inviare l'ordine al server e semplicemente impostare l'output sul client utilizzando CSS come elenco non ordinato senza punto elenco. IE6 è il tuo fattore limitante qui, e non ci sono molti modi per aggirare questo problema. Mi dispiace essere portatore di cattive notizie.

0

Se JavaScript non è un'opzione, sarà necessario codificarlo/implementarlo sul lato server.

Il lato positivo è: funzionerà per altri agenti/dispositivi utente meno capaci (pensa BlackBerry Browser ecc.) Immediatamente.

1

XSLT (incluso XSLT 1.0) può generare sequenze di numerazione multilivello con <xsl:number>.

+0

Questa sembra una possibilità poiché l'output finale è XHTML 1.0 strict. Grazie a tutti per le risposte veloci. Qualsiasi altro suggerimento sarà più che felicemente considerato. –

1

Ecco un CSS unica soluzione (dovrebbe funzionare in IE8 e sopra):

<ol> 
    <li> 
     Heading 
     <ol> 
      <li>list</li> 
      <li>list</li> 
     </ol> 
    </li> 
    <li> 
     Heading 
     <ol> 
      <li>list</li> 
      <li>list</li> 
     </ol> 
    </li> 
</ol> 



ol{ 
    list-style-position:inside; 
    list-style-type: none; 
    counter-reset:mainNum; 
} 

ol li:before{ 
    content: counter(mainNum) ".0"; 
    counter-increment:mainNum; 
} 

ol ol{ 
    counter-reset:item; 
} 

ol ol li{ 
    list-style-type:none 
} 

ol ol li:before{ 
    content: counter(mainNum) "." counter(item) " "; 
    counter-increment:item; 
} 
Problemi correlati