Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> CSS - generated content i dziwnie działające :after
erix
post
Post #1





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Postanowiłem użyć (właściwie, to dopiero zaczynam (IMG:style_emoticons/default/winksmiley.jpg) ) do budowania layoutu pseudoklas :before i :after.

No i załóżmy taką podstawową strukturę:

  1. <div id="header"></div>
  2. <div id="content"></div>
  3. <div id="footer"></div>


content ma coś w rodzaju zaokrąglonych rogów (stałej szerokości). W związku z tym wyprodukowałem obrazek, który zawiera te detale.

CSS wygląda w - mniej więcej - ten sposób:
  1. #content
  2. { clear: both; background: url('../gfx/content.png'); overflow: hidden; /*height: 400px; - to tylko dla testów bez zawartości*/ }
  3.  
  4. #content:before
  5. { content: " "; display: block; height: 26px; background: url('../gfx/contentWrapper.png') no-repeat; }
  6.  
  7. #content:after
  8. { content: " "; display: block; height: 35px; background: url('../gfx/contentWrapper.png') no-repeat bottom; }


No i dla pseudoklasy :before rogi są wyświetlone tak, jak być powinny - nie ma zastrzeżeń. Jednak :after jest wyświetlany zaraz po :before, a nie za #content, w taki sposób, że wygląda to tak:

(IMG:http://wstaw.org/m/2010/03/16/2010-03-16__16_20_2916_20_29_png_300x300_q85.jpg)

Co ciekawe, gdy zamiast selektora #content:after użyję #footer:before, to wszystko jest jak trzeba.

Niech mnie ktoś oświeci, co ja robię źle, bo już kombinowałem clearami/floatami/displayem/etc i nie mam do tej pory pomysłu...

EDIT: udało mi się dojść, co było nie tak.

Elementy :before/:after są przed/za dla zawartości wewnątrz warstwy. Stąd już ostatnia prosta:
  1. #content
  2. { /**/ position: relative }
  3.  
  4. #content:after
  5. { /*...*/ position: absolute; bottom: 0; left: 0; }
Go to the top of the page
+Quote Post

Posty w temacie


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: 23.08.2025 - 08:47