Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][CSS] Zła interpretacja listy ze znacznikami HTML
Kshyhoo
post
Post #1





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




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ę.
Go to the top of the page
+Quote Post
RiE
post
Post #2





Grupa: Zarejestrowani
Postów: 97
Pomógł: 45
Dołączył: 5.05.2010

Ostrzeżenie: (0%)
-----


Za mądrzejszego się nie uważam, ale postaram się wytłumaczyć (IMG:style_emoticons/default/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'.

Go to the top of the page
+Quote Post
Kshyhoo
post
Post #3





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




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/
Go to the top of the page
+Quote Post
vonski
post
Post #4





Grupa: Zarejestrowani
Postów: 292
Pomógł: 89
Dołączył: 27.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


A jak zrobisz tak:

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


to też nie pomaga?
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #5





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




No właśnie znacznik P jest elementem blokowym.
Go to the top of the page
+Quote Post
vonski
post
Post #6





Grupa: Zarejestrowani
Postów: 292
Pomógł: 89
Dołączył: 27.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


No tak, a display:inline-block robi z elementu blokowego, element "blokowo-liniowy" (IMG:style_emoticons/default/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.
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #7





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Kurde, działa (IMG:style_emoticons/default/wink.gif)
http://jsfiddle.net/P5dnr/12/

Kurcze, działa na przykładzie ale na stronie bez zmian ;(
Go to the top of the page
+Quote Post
RiE
post
Post #8





Grupa: Zarejestrowani
Postów: 97
Pomógł: 45
Dołączył: 5.05.2010

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #9





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Ale to wykrzacza resztę:
http://jsfiddle.net/P5dnr/14/
Go to the top of the page
+Quote Post
vonski
post
Post #10





Grupa: Zarejestrowani
Postów: 292
Pomógł: 89
Dołączył: 27.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


http://jsfiddle.net/P5dnr/15/

Chodzi Ci o taki efekt?
Go to the top of the page
+Quote Post
mar1aczi
post
Post #11





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

Ostrzeżenie: (0%)
-----


Bądź ustawiając szerokość: http://jsfiddle.net/P5dnr/16/
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #12





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




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/
Go to the top of the page
+Quote Post
vonski
post
Post #13





Grupa: Zarejestrowani
Postów: 292
Pomógł: 89
Dołączył: 27.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/smile.gif)

EDIT:
Ok, widzę że już dałeś rade (IMG:style_emoticons/default/smile.gif) Git

Ten post edytował vonski 3.02.2014, 23:13:31
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #14





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




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/
Powód edycji: [Kshyhoo]:
Go to the top of the page
+Quote Post
mar1aczi
post
Post #15





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

Ostrzeżenie: (0%)
-----


Wstawianie licznika masz zdefiniowane tylko i wyłącznie dla:
  1. .tutek1 > ol > li:before,
  2. .tutek2 > ol > li:before

w przedstawionym przykładzie.

Ten post edytował mar1aczi 4.02.2014, 15:41:27
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #16





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




No jasne, w zimowy sen zapadłem. Chyba czas na wakacje (IMG:style_emoticons/default/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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.09.2025 - 10:59