2009-03-02 14 views
5

Próbuję dowiedzieć się, jak utworzyć zwiększoną listę uporządkowaną obecnie w kierunku IE6 i IE7.Zagnieżdżanie elementów listy w elementach listy uporządkowanej listy?

E.G. Należy uczynić coś jak poniżej:

1.0 
    1.1 
    1.2 
    1.3 
2.0 
    2.1 
    2.2 

z tego co rozumiem, to jest możliwe, aby stworzyć w CSS z mniej więcej tak:

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

jednak, oczywiście, IE6 i IE7 nie obsługuje to.

Jakie opcje są dostępne, aby utworzyć poprawną listę w IE6/7? Czy utknąłem, że muszę to zakodować? Niestety używanie JavaScript nie jest opcją.

Czy są jakieś zaktualizowane metodologie dla nowszych przeglądarek?

+0

O btw, dziękuję Andrzejowi za poprawki formatowania. –

Odpowiedz

0

Jeśli javascript nie jest opcją (i dlatego też nie zakładam flashowania), przepraszam, że nie ma opcji rozwiązania po stronie klienta. Jeśli masz skrypt po stronie serwera, który generuje twój HTML, możesz popchnąć kolejność na serwer i po prostu wyposażyć wyjście na kliencie za pomocą CSS jako listy nieuporządkowanej bez wypunktowania. IE6 jest tutaj czynnikiem ograniczającym i nie ma na to wiele sposobów. Przykro mi być posiadaczem złych wiadomości.

0

Jeśli JavaScript nie jest opcją, będziesz musiał go mocno zakodować/zaimplementować po stronie serwera.

Pozytywną stroną jest: Będzie działać dla innych mniej zdolnych użytkowników/urządzeń (od razu myślę o BlackBerry Browser itp.).

1

XSLT (w tym XSLT 1.0) może generować wielopoziomowe sekwencje numerowania z <xsl:number>.

+0

To wygląda na możliwość, ponieważ ostateczny wynik to XHTML 1.0 strict. Dziękuję wszystkim za szybkie odpowiedzi. Wszelkie inne sugestie będą bardziej niż przemyślane. –

1

Oto CSS jedynym rozwiązaniem (powinien działać w IE8 i powyżej):

<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; 
} 
Powiązane problemy