2013-01-15 15 views
6

Chciałbym wyrównać zarówno liczby, jak i tekst w moim <ol>. To, co próbuję wykonać:Wyrównanie w lewo zarówno numerów list, jak i tekstu

enter image description here

Teraz każdy <li> zawiera <a>, ale to może się zmienić. Do tej pory próbowałem wstawić lewe dopełnienie, a następnie tekstowe wcięcie na <a>.

Oto mój kod od teraz.

HTML:

<ol class="dinosaurs"> 
    <li><a>Dinosaur</a></li> 
    <li><a>Tyrannosaurus</a></li> 
    <li><a>Camptosaurus</a></li> 
</ol> 

CSS:

.dinosaurs{ 
    list-style-position: inside; 
} 

UWAGA: Mam przeglądania strony internetowej w Chrome 23 na Windows 7.

+0

Czy to nie jest już to, co robisz? http://jsfiddle.net/j08691/LRV5x/1/ – j08691

+0

@ j08691 Nie. Spójrz na różnicę między miejscem rozpoczęcia tekstu w punktach # 9 i # 10. – dmr

+0

Czy usunięcie reguły pozycji w stylu listy nie jest tym, czego potrzebujesz? http://jsfiddle.net/j08691/LRV5x/2/ – j08691

Odpowiedz

9

Można pozycjonować elementy listy tak:

.dinosaurs { 
    list-style-position: inside; 
} 

.dinosaurs li{ 
    position: relative; 
} 
.dinosaurs li a { 
    position: absolute; 
    left: 30px; 
} 

który przyniósłby http://jsfiddle.net/wBjud/2/

+2

Nie działa w przypadku wpisów wielowierszowych – user2846569

1

spróbuj dodać padding-left: 0; do swojego stylu i zmieniając list-style-position: do outside, jeśli to konieczne.

+0

'styl listy-pozycja: na zewnątrz' prawy wyrównuje numery – dmr

+1

Ah, Zrzut ekranu nie był jeszcze gotowy. Należy pamiętać, że pozycja w stylu listy nie wyrównuje liczb tak bardzo, jak wskazuje listę, gdzie ma się pojawiać w związku z ramką ograniczającą. https://developer.mozilla.org/en-US/docs/CSS/list-style-position – alanmoo

1

Można udawać za pomocą pozycjonowania, dopełnienie i marginesy.

jsFiddle example

.dinosaurs { 
    list-style-position: inside; 
    position:relative; 
    margin-left: -20px; 
} 
a { 
    position:absolute; 
    left:70px; 
} 
+0

Nie działa na wejściach wieloliniowych – user2846569

13

To wydaje się działać:

.dinosaurs { counter-reset: item } 
.dinosaurs li { display: block } 
.dinosaurs li:before { 
    content: counter(item) ". "; 
    counter-increment: item; 
    width: 2em; 
    display: inline-block; 
} 
+0

Naprawdę miło jest zobaczyć elastyczne rozwiązanie tutaj. Ten nie będzie łamał się jak rozwiązania wykorzystujące pozycjonowanie absolutne, jeśli elementy się zawijają. – cimmanon

+3

@imimmanon Mogę sprawić, by ten działał nieco lepiej (co pokazany brad nie działa tak dobrze dla list z zawijaniem tekstu) ustawiając LI na pozycję: relative; oraz: przed pozycją: absolutną; i pozycjonowanie w ten sposób. [Przykład jsFiddle] (http://jsfiddle.net/NU48L/) –

+0

@BartS. Właśnie się zalogowałem, aby podziękować. Myślę, że to powinna być odpowiedź. Wspaniały! – cyonder

Powiązane problemy