To jest rozwiązanie, które pracuję w Firefox 3, Opera i Google Chrome. Lista nadal jest wyświetlana w IE7 (ale bez nawiasu zamykającego i numerów wyrównanych do lewej):
ol {
counter-reset: item;
margin-left: 0;
padding-left: 0;
}
li {
display: block;
margin-bottom: .5em;
margin-left: 2em;
}
li::before {
display: inline-block;
content: counter(item) ") ";
counter-increment: item;
width: 2em;
margin-left: -2em;
}
<ol>
<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
<li>Five</li>
<li>Six</li>
<li>Seven</li>
<li>Eight</li>
<li>Nine<br>Items</li>
<li>Ten<br>Items</li>
</ol>
EDYCJA: Dołączona poprawka wielu linii przez stragera
Istnieje również rozwiązanie CSS umożliwiające zmianę z liczb na listy alfabetyczne / rzymskie zamiast używania atrybutu type w elemencie ol.
Zapoznaj się z właściwością CSS typu listy . Lub w przypadku korzystania z liczników drugi argument akceptuje wartość typu listy. Na przykład następujące będą używać wielkich liter:
li::before {
content: counter(item, upper-roman) ") ";
counter-increment: item;
/* ... */
ol {counter-reset: item; padding-left: 0;} li {display: block; margin-bottom: .5em;} li:before {display: inline-block; content: counter(item) ") "; counter-increment: item; padding-right: 0.8em;}
.CSS dla list stylów jest tutaj , ale jest w zasadzie:
Jednak specyficzny układ jesteś po prawdopodobnie można osiągnąć tylko przez sięgnięcie do wnętrzności układ z czymś takim to (uwaga, że nie zostały faktycznie próbował go):
źródło
Możesz również podać własne liczby w HTML - np. Jeśli liczby są dostarczane przez bazę danych:
seq
Atrybut jest widoczne stosując metodę podobną do podanej w innych odpowiedzi. Ale zamiast używaćcontent: counter(foo)
, używamycontent: attr(seq)
.Demo w CodePen z większą ilością stylizacji
źródło
value
atrybutu on<li>
. np<li value="20">
. Wtedy nie potrzebujesz żadnych pseudo elementów. Demovalue="4A"
, ponieważ to nie zadziała. Ponadto atrybut wartości może współpracować ztype
atrybutem, ale wartość nadal musi być liczbą (ponieważ działa w uporządkowanym zestawie).reversed
atrybut jest html5 tylko, jak przy użyciuvalue
zli
). Zamiast używać twojegoseq
, ustawiłemvalue
i użyłemattr(value)
zamiastattr(seq)
Ukradłem dużo tego z innych odpowiedzi, ale to działa dla mnie w FF3. Posiada
upper-roman
jednolite wcięcie, nawias zamykający.źródło
Proponuję pobawić się atrybutem: before i zobaczyć, co można dzięki temu osiągnąć. Będzie to oznaczać, że Twój kod naprawdę jest ograniczony do nowych, ładnych przeglądarek i wyklucza (irytująco dużą) sekcję rynku, która wciąż używa starych przeglądarek,
Coś podobnego do następującego, które wymusza ustalenie z na przedmiotach. Tak, wiem, że samodzielne wybieranie szerokości jest mniej eleganckie, ale używanie CSS do układu jest jak tajna praca policyjna: bez względu na to, jakie masz motywy, zawsze robi się bałagan.
Ale będziesz musiał eksperymentować, aby znaleźć dokładne rozwiązanie.
źródło
Liczby układają się lepiej, jeśli dodasz zera wiodące do liczb, ustawiając typ listy na:
źródło
HTML5: użyj
value
atrybutu (bez CSS)Nowoczesne przeglądarki zinterpretują ten
value
atrybut i wyświetlą go zgodnie z oczekiwaniami. Zobacz dokumentację MDN .Zapoznaj się również z
<ol>
artykułem na temat MDN , zwłaszcza z dokumentacją dotyczącąstart
atrybutu and.źródło
Pożyczono i poprawiono odpowiedź Marcusa Downinga . Przetestowane i działa w przeglądarkach Firefox 3 i Opera 9. Obsługuje również wiele linii.
źródło
Istnieje atrybut Typ, który umożliwia zmianę stylu numeracji, jednak nie można zmienić kropki po cyfrze / literze.
źródło
Doktorzy mówią odnośnie
list-style-position
: outside
Dalej na tej stronie znajduje się materiał o znacznikach.
Jednym z przykładów jest:
źródło
Nie ... po prostu użyj DL:
źródło
Mam to. Spróbuj wykonać następujące czynności:
Haczyk polega na tym, że to zdecydowanie nie zadziała na starszych lub mniej zgodnych przeglądarkach:
display: inline-block
to bardzo nowa właściwość.źródło
Szybkie i brudne rozwiązanie alternatywne. Możesz użyć znaku tabulacji wraz ze wstępnie sformatowanym tekstem. Oto możliwość:
i twój html:
Zwróć uwagę, że odstęp między
li
znacznikiem a początkiem tekstu jest znakiem tabulacji (co otrzymujesz, naciskając klawisz tabulacji w notatniku).Jeśli potrzebujesz obsługi starszych przeglądarek, możesz to zrobić:
źródło
Pozostałe odpowiedzi są lepsze z koncepcyjnego punktu widzenia. Możesz jednak po prostu uzupełnić liczby w lewo odpowiednią liczbą „& ensp;” aby ustawić je w jednej linii.
* Uwaga: na początku nie rozpoznałem, że używana jest lista numerowana. Myślałem, że lista jest jawnie generowana.
źródło
Podam tutaj odpowiedź, której zwykle nie lubię czytać, ale myślę, że skoro istnieją inne odpowiedzi, które mówią, jak osiągnąć to, czego chcesz, dobrze byłoby przemyśleć, czy to, co próbujesz osiągnąć, jest naprawdę dobry pomysł.
Najpierw zastanów się, czy dobrym pomysłem jest pokazanie pozycji w niestandardowy sposób, z innym znakiem separatora niż podany.
Nie znam powodów, ale przypuśćmy, że masz dobre powody.
Proponowane tutaj sposoby osiągnięcia polegające na dodawaniu treści do znaczników, głównie poprzez CSS: przed pseudoklasą. Ta zawartość naprawdę modyfikuje twoją strukturę DOM, dodając do niej te elementy.
Używając standardowej numeracji „ol”, uzyskasz wyrenderowaną zawartość, w której tekst „li” jest wybieralny, ale liczba poprzedzająca go nie jest wybierana. Oznacza to, że standardowy system numeracji wydaje się być bardziej „dekoracją” niż rzeczywistą treścią. Jeśli dodasz zawartość do numerów przy użyciu na przykład tych metod „: before”, zawartość ta będzie możliwa do wybrania i spowodowana tym, że spowoduje to niepożądane błędy kopiowania / wklejania lub problemy z dostępnością z czytnikami ekranu, które dodatkowo odczytują tę „nową” zawartość do standardowego systemu numeracji.
Być może innym podejściem mogłoby być stylizowanie liczb za pomocą obrazów, chociaż ta alternatywa przyniesie własne problemy (liczby nie są wyświetlane, gdy obrazy są wyłączone, rozmiar tekstu dla numeru nie zmienia się, ...).
Tak czy inaczej, powodem tej odpowiedzi nie jest tylko zaproponowanie tej alternatywy dla „obrazków”, ale skłonienie ludzi do myślenia o konsekwencjach próby zmiany standardowego systemu numeracji dla list uporządkowanych.
źródło
Ten kod sprawia, że styl numeracji jest taki sam, jak nagłówki zawartości li.
źródło