Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][CSS] Zła interpretacja listy ze znacznikami HTML
Forum PHP.pl > Forum > Przedszkole
Kshyhoo
Może ktoś mądrzejszy wytłumaczyć mi, dlaczego wykrzacza się numeracja listy?
http://jsfiddle.net/P5dnr/
Jak widać, numerowanie z licznikiem dodaje nową linię.
RiE
Za mądrzejszego się nie uważam, ale postaram się wytłumaczyć smile.gif

To nie licznik dodaje nową linię, tylko znacznik p.
Jeżeli usuniesz licznik, ale nie usuniesz :before to dalej tekst przeskoczy do nowej lini.
Przykład: http://jsfiddle.net/P5dnr/10/


:before tworzy pseudo element, który jest pierwszym dzieckiem.
Zatem Twój kod jest równoważny z tym:
  1. <li><span>Pierwsze dziecko elementu li</span><p>w znacznikach &lt;p&gt;</p></li> // dwie linie
  2. <li><span>Pierwsze dziecko elementu li</span>bez znaczników &lt;p&gt;</li> // jedna linia


Znacznik p domyślnie wyświetla się jako blok(display:block), dlatego przeskakuje do nowej lini.
Rozwiązaniem byłoby nadanie display:inline, albo zmiana znacznika p na jakiś 'inline'.

Kshyhoo
No to się już dowiedziałem i kombinowałem a display: inline, ale do tej pory bez rezultatu. Muszę przerobić na coś w stylu klasa.ol klasa li
Znalazłem dwa przykłady, które działają zgodnie z moim zamysłem, czyli po DIV class="tutek" następuje automatyczne numerowanie list bez nadawania odrębnych klas
http://fiddle.jshell.net/Gbf6u/
http://jsfiddle.net/audetwebdesign/wsmnJ/
vonski
A jak zrobisz tak:

  1. .tutek2 > ol > li:first-child p {
  2. display:inline-block;
  3. }


to też nie pomaga?
Kshyhoo
No właśnie znacznik P jest elementem blokowym.
vonski
No tak, a display:inline-block robi z elementu blokowego, element "blokowo-liniowy" smile.gif Czyli można mu nadać szerokośc i wysokość, marginesy tak jak blokowemu, ale w przeciwieństwie do blokowego nie "przeskakuje" do nowej linii.
Kshyhoo
Kurde, działa wink.gif
http://jsfiddle.net/P5dnr/12/

Kurcze, działa na przykładzie ale na stronie bez zmian ;(
RiE
Cytat
Kurcze, działa na przykładzie ale na stronie bez zmian ;(


  1. .tutek2 > ol > li:first-child p {
  2. display:inline-block;
  3. }


Powyższa reguła odnosi się tylko do pierwszego elementu li, w przypadku kiedy n-ty znacznik li ma w sobie p, nie zadziała.

  1. .tutek2 > ol > li > p {
  2. display:inline-block;
  3. }


Dla wszystkich elementów li, których potomek to p
Kshyhoo
Ale to wykrzacza resztę:
http://jsfiddle.net/P5dnr/14/
vonski
http://jsfiddle.net/P5dnr/15/

Chodzi Ci o taki efekt?
mar1aczi
Bądź ustawiając szerokość: http://jsfiddle.net/P5dnr/16/
Kshyhoo
Tylko, że to nie działa dobrze, przesuwa numerek z dół.
http://jsfiddle.net/P5dnr/17/

Chyba zmogłem problem:
http://jsfiddle.net/P5dnr/18/
vonski
http://jsfiddle.net/P5dnr/19/

dla .tutek1 > ol > li:before {vertical-align:top;} i dla elementów w środku <li> {margin-top:0} - przez to Ci się trochę zmniejszą odstępy (o 10px chyba?) więc możesz o 10px powiększyć np. margin-bottom tych elementów. Tak bym jakoś kombinowal smile.gif

EDIT:
Ok, widzę że już dałeś rade smile.gif Git
Kshyhoo
No właśnie nie wszystko działa jak należy. Tym sposobem przestało mi numerować listy zagłębione, w tym również w znacznikach PRE.
http://jsfiddle.net/P5dnr/22/
mar1aczi
Wstawianie licznika masz zdefiniowane tylko i wyłącznie dla:
  1. .tutek1 > ol > li:before,
  2. .tutek2 > ol > li:before

w przedstawionym przykładzie.
Kshyhoo
No jasne, w zimowy sen zapadłem. Chyba czas na wakacje smile.gif

Kuleje mi nadal numerowanie listy w znaczniku PRE: http://jsfiddle.net/P5dnr/26/. Numerowanie powinno być wyrównane do prawej a jest do lewej.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.