Bez tytułu o CSS

Po paru doświadczeniach ze standardem CSS 2 i tworzeniem layoutów na warstwach postanowiłem zawrzeć moje przemyślenia na ten temat w tym niewielkim artykule. Dotyczą one nie tylko spraw związanych bezpośrednio ze standardem, ale i z ich wdrażaniem na stronach WWW.

Ost. modyfikacja: poniedziałek, 10 kwietnia 2006

A jużci czas pewien minął od chwili, gdy CSS 2 pod strzechą domu niżańskiego mego pojawił się, oczywiście za sprawą eXtreme'a. Poczytał o tym trochę, popróbował i stwierdził, że fajne to jest. Pokazywał CSS Zen Garden, demonstrował, jakie cuda z layoutami można robić. Jako, że mnie bardziej interesuje PHP i bazy danych, wykazywałem umiarkowane zainteresowanie. Przyszedł jednak czas, kiedy musiałem samodzielnie od zera wykonać kilka stronek i zgodnie z zaleceniami sam przyjrzałem się temu rozwiązaniu.

Zalety w sumie widać już przy pierwszym podejściu, choćby i na tej stronie. Kod XHTML opisuje tylko podstawowe elementy strony: warstwy, paragrafy, nagłówki. Dopiero CSS pozycjonuje je, nadaje barwy, ustala powiązania między nimi. Zmiana szaty graficznej sprowadza się więc zazwyczaj jedynie do zmiany używanego arkusza stylów, pod warunkiem oczywiście, że nasz dokument HTML jest na tyle dobrze skonstrowany, że pozwala na duże manewry. Dodatkowo połączenie to zakłada pełną zgodność ze standardami, m.in. XHTML, dzięki czemu w teorii wykluczamy tzw. korekcję błędów przez przeglądarki WWW posiadającą całkiem sporą nieprzewidywalność. Jeśli nasz dokument nie ma domkniętego znacznika, trudno. Musisz błąd poprawić i tyle. Obecnie na tej stronie połączenie XHTML+CSS wykorzystywane jest do uzyskania trybu dziennego i nocnego strony, różniącego się kolorystyką. Dokument wynikowy nie zawiera żadnych informacji o swoim wyglądzie w przeglądarce. Ogólny arkusz general.css lokuje je w odpowiednim miejscu, ustawia marginesy oraz wielkości czcionek. Do tego PHP dobiera jeden z dwóch arkuszy: style.css albo style_night.css niosących wyłącznie informacje o kolorach. Taka modularyzacja jest bardzo wygodna dla mnie, jako administratora strony. Jeśli chcę przesunąć menu trochę w prawo, edytuję arkusz globalny, a zmiany widoczne są na wszystkich podstronach w obu trybach.

Teraz przejdę do właściwej części tego artykułu, czyli narzekania :). Bowiem aby taki efekt osiągnąć, trzeba się naprawdę napracować. Mimo całej swej genialności w pewnych sprawach CSS jest po prostu niedopracowany i nieprzemyślany. Chcesz, aby menu miało zawsze identyczną długość, jak ramka tekstowa? Nie da rady, ja sam musiałem z tego luksusu zrezygnować. Jedynym rokującym jakieś nadzieje rozwiązaniem jest utworzenie pliku graficznego z tłem, które puszczamy tak, aby symulowało obecność rozciągniętego menu. W ogóle wiele zdałoby się elementarnych rzeczy może czasem człowieka przyprawić o palpitację serca. Przeliczanie niektórych odległości CSS'owych na to, co widać na ekranie, wygląda na wzięte z kosmosu, w dodatku z okolic jakiejś czarnej dziury. Problem taki odkryłem przy tworzeniu szaty graficznej dla strony szkoły (premiery jeszcze nie było), gdzie wartość "100%" była interpretowana dla jednego znacznika zupełnie inaczej, niż dla drugiego. Chyba się tu komuś coś pomieszało. Jak jest symbol "100", a za nim jeszcze znak procentu, to w dobrym standardzie powinien znaczyć zawsze to samo. Kolejną sprawą, która mnie irytuje, jest tzw. vertical-align. Do dziś nie rozumiem, jake zasady rządzą renderingiem tego znacznika. Piszę vertical-align:top;, tekst nadal jest w tym samym miejscu, piszę wszystko, co jest możliwe w nadziei osiągnięcia celu, w ostateczności tylko połowa tekstu wyświetli się dobrze, z reszty robi się kaszana. Można powiedzieć, że zawinili tu twórcy przeglądarki, ale jeśli tak, to nie tylko jednej, a dosłownie wszystkich! Nie wiem, może te wszystkie zasady mają jakiś sens logiczny dla tych, co CSS układali (pewnie studiowali matematykę alternatywną w szkołach :)), ale moim zdaniem standard to coś więcej, niż tylko ujednolicenie reguł. Jeśli już porywamy się na popełnienie czegoś takiego, powinniśmy dołożyć starań, aby był on zrozumiały nie tylko dla mastahów z 20-letnim stażem potrafiących za pomocą indukcji opisać ruch chińskiego gołębia nad Mongolią. Fakt, Microsoft ze swoim Internet Sexplorerem generalnie olewa wszystkie standardy za wyjątkiem XML'a i twierdzi, że jest dobrze, ale drugą stroną medalu jest właśnie przekomplikowanie. Twórcy CSS'a chcieli oryginalności, wyszło z tego cudo, które przy pierwszym kontakcie ma niesamowite zdolności destrukcyjno-patologizujące. Standardów nie publikuje się dla samego siebie, ale dla ludzi. Jeśli ich zamierzeniem jest stosowanie XHTML+CSS 2 przez szerokie rzesze ludzi, muszą odrzucić te wszystkie idiotyczne i nielogiczne kalkulacje, a następnie poukładać wszystko trochę lepiej. Inaczej będzie to standard wyłącznie dla handlarzy reklam i dostawców materiałów może i dobrych, ale za opłatą, które generalnie nic wielkiego do Internetu nie wnoszą. Z własnego doświadczenia wiem, że prawdziwe perełki wiedzy znajdują się na stronach robionych przez amatorów, którzy tego medium używają jako narzędzia, a nie celu samego w sobie do nauczenia się. Zwyczajny HTML może i nie jest doskonały, ale prosty i logiczny. Po paru godzinach dosłownie każdy może w nim opublikować wartościowy pod względem informacyjnym dokument oraz udostępnić go innym. Według mnie raczej mało będzie zwykłych ludzi, którym będzie się chciało siedzieć trzy miesiące, wertując dokumentacje oraz profesjonalne materiały tylko po to, aby umieścić w sieci dwadzieścia swoich prac o (dajmy na to) egipskich mumiach, z dodatkową prostą nawigacją między nimi. Tu widać czaro na białym piętę achillesową całego tego planu. Niestety nic nie zapowiada, aby nadchodzący CSS 3 w znaczącym stopniu ją łatał. Ludzie za niego odpowiedzialni koncentrują się na dodawaniu kolejnych opcji w stylu zaokrąglonych ramek, czy znaczników do sterowania syntezatorami mowy. Cóż, czas pokaże, czy efektem końcowym będzie specyfikacja dla dużych witryn WWW i stron WWW rozmaitych programistów albo webmasterów.

Z problemami wdrożeniowymi idzie w parze kolejny problem, mianowicie brak jakichkolwiek materiałów dobrej jakości, które przystępnie opisywałyby tajniki wykonania niektórych rzeczy czy też objaśniały, jak się na taki styl pisania przesiąść. Proszę nie mówić, że jest to niewykonalne, gdyż na zachodzie jakoś widziałem tego typu artykuły, a u nas żadnego. Okazuje się, że najlepsze, co jest w stanie spłodzić polska całkiem spora społeczność webmasterów, to nudne tłumaczenie specyfikacji szumnie zwane "Kursem XHTML i CSS" i do bólu powielane przez chyba wszystkie możliwe serwisy internetowe. Jedynym alternatywnym polskojęzycznym źródłem są fora dyskusyjne. Sytuacja jest tym bardziej żenująca, gdy ci sami webmasterzy narzekają na ludzi ignorujących nowoczesność i nie robią dosłownie nic, by to zmienić. No... tam czasem ktoś nazwie kogoś lamerem z tego powodu, ale są to skrajne przypadki. Dlatego mam do nich pewną uwagę, kierowaną także w moim własnym imieniu. Chcecie, aby CSS 2 się bardziej upowszechnił, nawet mimo jego wad? Zejdźcie zatem z chmur, dostrzeżcie je i zacznijcie pisać. Inaczej wasze gadanie i narzekanie to sobie możecie gdzieś wsadzić, bo w kwestii praktycznej tegoż zagadnienia robicie dokładnie tyle samo, co polscy dziennikarze piszący felietony o sytuacji w kraju, czyli nic (A że Polacy z zasady lubią nic nie robić, publicystyka jest ostatnimi czasy bardzo popularna :)). Przyznajcie szczerze: co facetowi chcącemu prowadzić stronkę o motoryzacji z waszego gadania, że jest CSS, ale nikt go nie stosuje, skoro nikt mu nie chce pokazać, JAK go stosować. Tu jest właściwy pies pogrzebany. Do rozwoju potrzebne są nie tylko dobre standardy, ale i dobre opracowania, które by opisały także, jak ominąć wady i niedociągnięcia tychże. Pamiętam, jak swego czasu Wirtualna Polska rozkręciła kampanię, że wdraża XHTML i CSS w swoim portalu. I nic. Pogadano sobie trochę, głównie jako ciekawostkę i o wszystkim zapomniano. Pozostałe serwisy jakoś nie kwapią się do podążania tą drogą, a jeśli jakiś szary wyjadacz naprawdę się tym zainteresował, pewnie od razu zrezygnował właśnie z braku dobrej pomocy. Nie liczcie, że wszyscy są takimi hardcore'owcami, jak wy, którym wystarcza sama goła specyfikacja W3C...

Osobiście nie mam zamiaru włączać się do tego wyścigu "Patrzcie, jaki szpan! Mam CSS!" Traktuję tę technologię jedynie jako użyteczne narzędzie. Pogoń za numerkami mnie nie pociąga ani trochę; przez pierwszych kilka miesięcy działalności tej strony trudno było powiedzieć o jej zgodności ze standardami. Tekst ten napisałem zaś dlatego, by wskazać co poniektórym marzycielom, że CSS idealny nie jest, też ma wady i niedociągnięcia, a ponadto brakuje do niego dobrych polskojęzycznych materiałów. To jest właśnie wyzwanie dla wymiataczy pragnących panowania arkuszy stylów w polskim Internecie. Na rozważania filozoficzne w stylu "czy moim pisaniem zmienię świat" nie ma tu czasu ani sensu. Także i ja, jako użytkownik, z niecierpliwością czekam na porządne tutoriale oraz pomoce, które poratują mnie w godzinie potrzeby. Bo nie wszyscy mają w domu takiego eXtreme'a, a jeśli nawet, nie zawsze jest on dostępny... :)

Dla redaktorów EIOBA.COM i innych: Jeśli czytany artykuł udostępniony jest na licencji Creative Commons, to proszę wgrywać go do własnych baz danych z takimi oznaczeniami o autorze, jakie chcę aby były i o jakich jest informacja w pliku PDF. Nie mam zamiaru latać po całej sieci i każdemu z osobna te sprawy wyjaśniać. Jeśli natomiast jesteś z EIOBA.COM, nie wgrywaj tego tekstu - sam mam tam konto i uczynię to osobiście w odpowiednim czasie.

© Tomasz "Zyx" Jędrzejewski 2005 - 2008 | Wykonanych zapytań: 1 | Serwer wirtualny zapewnia