Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: :after i spacja
Forum PHP.pl > Forum > Po stronie przeglądarki > CSS
czachor
Witam!
Mam taki (uproszczony) kod:
  1. #content br:after
  2. {
  3. content : " ";
  4. }
  5. </head>
  6.  
  7. <div id="content">
  8. Jakiś txt<br />
  9. który ciągnie się<br />
  10. przez kilka linii<br />
  11. i jest oddzielany tagiem BR
  12. </div>
  13.  
  14. </body>
  15. </html>

O co chodzi... chcę za pomocą CSS'a (php z pewnych względów tutaj odpada) po tagu <br /> w obrębie <div id="content"> wstawić spację (&nbsp;) albo <div style="width: 10px; display: inline" />, względnie cokolwiek, co zrobi mi jakiś odstęp. Przełamywanie linii jest tworzone automatycznie (nl2br() w php), text (czysty, bez żadnego HTML'a!) jt wyciągany z bazy. Problem leży w tym, że wynikiem tego kodu powyżej jest:
Kod
Jakiś txt
&nbsp;który ciągnie itd........

=> czyli spacja (&nbsp;) nie jest zamieniana na " "... Tak samo traktowane są tagi... Przykład z DIV'em zwróci:
Kod
Jakiś txt
<div style="width: 10px" />który ciągnie itd........

Ma ktoś jakieś sugestie? Próbowałem z encjami, unicodem, nawet content: " ", kombinowałem z wartością attr(X) i lipa...
Z góry dzięki za wszelką pomoc!
wassago
z tego co mi wiadomo to nie da rady.. sam probowalem kombinowac ze spacjami ale nic nie wychodzilo - w specyfikacji masz kilka przykladow, co mozna wstawiac jako wartosc content'u.
czachor
Heh... wszystko na to wskazuje... Przesiedziałem pół nocy googlach nad tym problemem i nic nie znalazłem...
Dzięki @wassago, a jeżeli ktoś coś wymyśli (na obejście tego?), czekam smile.gif

--UPDATE--
Hmmm.... W geście rozpaczy zacząłem tworzyć. Wstawiłem do styli coś takiego:
Kod
#content br:after
{
content : "\7";
}
i pojawia mi się odstęp (wielkość zależna od wstawionej liczby)! Nie wiem, czy to jest Valid, ale działa... ...w Mozilli, oczywiście IE ma wszystko gdzieś.

PS. Problem oczywiście cały czas otwarty, bo to chyba nie jest poprawne...
wassago
sporoboj
Kod
\26B
lub
Kod
\000026B
, albo to i to razem.

EDIT:

ps. ale chyba wiesz, ze IE nie obsluguje pseudoklasy :after winksmiley.jpg a juz nie wspominajac o takich egzotycznych rzeczach jak 'content' lub 'attr()' ..
czachor
Nom doczytałem już o IE... Ciągle nie wiem, czego to "coś" ma taką popularność winksmiley.jpg
Próbowałem z tym, co podałeś, poczytałem też to: http://www.georgehernandez.com/xWebs/CSS/zMisc.htm i to: http://www.w3.org/TR/REC-CSS2/syndata.html#q4 ale Mozilla zwraca nie spację, tylko "&B" w obu przypadkach...

--UPDATE--

No i mam... Dla wszystkich zainteresowanych:
Kod
#content br:after
{
content : "\0000A0"; /*spacja*/
}

i przydatny link: http://www.saila.com/usage/tips/examples/s...characters.html (wpisać żądany znak, wynikiem będzie odpowiedni ciąg, który trzeba wstawić w CSS).
Pod IE nie działa, odpowiedź "jedyna i słuszna".
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.