Tworząc strony internetowe bardzo często spotykam się z problemem - "jak określić wielkość czcionek na ekranie?". Sam nadal mam z tym problem i waham się co z tym fantem zrobić.
Do określania wielkości czionek wykorzystywane są głównie 3 jednostki - px, em i %. Te ostatnie pominę, bo nie używam w ogólę.
Wydawało by się, że to jednostka em jest dużo lepsza od pixelów kiedy mamy do czynienia z ustawianiem wielkości tekstu. Ależ czy jej przewagą nad pixelami nie jest jedynie skalowalnośc w IE Windows (i to tylko w przypadku nie użycia dla elementu nadrzędnego - np. body, pixeli)? Mi się w tej chwili wydaje, że jest - jeśli się mylę, bo mogłem teraz o czymś zapomnieć, to mnie oświećcie.
Niestety - jak zawsze, zaletom towarzyszą wady. Wadą jednostki em jest to, że przy różnej rozdzielczości logicznej (standard Win 16px/96dpi, a np. Makówki mają 12px/72dpi) mają różną wielkość. To co pod Windowsem będzie miłe oku, pod Mac'iem będzie za duże i odwrotnie - to co pod Mac'iem będzie ładnie wyglądać, pod Windowsem będzie ogromne.
-Można przecież rozpoznać system.
Tak. Ale w końcu chodzi o to, żeby tego nie robić. Co w przypadku kiedy ktoś zmieni nazwę UA. Na dodatek rozdzielczość logiczną można sobie zmieniać dowoli i robią to użytkownicy Maców, którzy się wkurzają na przeogromniasty tekst.
Co więc o pixelach?
Niektórzy mówią, że jest jednostką bezwzględną - i racji nie mają. Wystarczy odwołać się do specyfikacji CSS 2.1, która zalicza pixele do jednostek względnych. Dlaczego tak jest? Wyjaśnienie znajdujemy poniżej:
Pixel units are relative to the resolution of the viewing device, i.e., most often a computer display. If the pixel density of the output device is very different from that of a typical computer display, the user agent should rescale pixel values.
Niestety z tego co wiem drugie zdanie na razie zostało bez odzewu wsród twórców przeglądarek. Co więc zrobić?
Kiedy używamy nowoczesnej przeglądarki (opartej na Gecko, IE Mac, Opera, Safari, Konqueror, itd.) problemu nie ma - przeglądarki te skalują pixele.
Gorzej jest z IE Windows, które nadal używa dużo użytykowników. Tutaj przychodzą z pomocą rozwiązania bazujące na podmianie styli(ów? :D). Można przecież dodać arkusz styli z czcionkami pomniejszonymi o 2px i drugi z powiększonymi o 2px.
Co przez to zyskujemy?
Coś jeszcze? Wydaje mi się, że wszystkie problemy zostały już rozwiązane.
To co napisałem powyżej jest tak jakby komentarzem do notki Riddle'a. Poruszona została jeszcze kwestia jakiejś nieskalowalnej jednostki, którą miałby być pixel.
Mi osobiście absolutnie nie przeszkadza to, że mogę za pomocą Firefoxa skalować wielkości czcionki oparte na pixelach. Osobiście staram się tworzyć layouty tak, żeby zmiana czcionki nie powodowała ucinania tekstu, wylewania się go, czy czego innego (oczywiście zmiana w jakimś sensownym stopniu).
Tak więc przy tworzeniu stron nie mam problemu... Problem za to mam, kiedy sam muszę skorzystać z jakiejś strony gdzie czcionki oparte są na pixelach. Takich stron jest trochę, bo uświadomieni webmasterzy dość często nadal (i według mnie nie jest to złe) używają pixelów, z powodu różnic pomiędzy platformami, a ci nieuświadomieni używają, bo... bo czego by mieli używać? ;p. Więc co miałbym zrobić na takiej stronie w przypadku kiedy pixele stałyby się nieskalowalne, a tekst okazałby się za mały?
Piksel jest relatywny względem tego co Ci działo elektronowe „wyszczeliwuje” na szklaną taflę. Jednak jeśli masz 200px na ekranie to podczas zwiększania rozmiaru czcionki nie powinieneś mieć skalowania tej wartości, bo nie zmieniasz dpi, jak napisaleś, tylko rozmoar fonta. Przeczytaj jesio raz angielski cytat. Ja nie pisałem o niczym innym jak fontach i tej relatywności.
Na marginie: Stylów. :) I pikseli. :)
Co do ostatniego zdania: włączyć obsługę (rozszerzenie powiedzmy) skalowania pikseli. Zamknąć okno. Skopiować tekst do notepada, klnąć na debila który ustawił wartości rozmiaru tekstu na px a nie em.
Ja pisałem o elementach dekoracyjnych, które nie powinny się ruszać. Zrozumiesz za jakiś czas, no offence to you.
Ale skalowanie czcionki poprzez "text zoom" (czy jak to się zwie) jest działaniem podjętym przez użytkownika. Nie ma tu związku ze specyfikacją. Specyfikacja odnosi się do tego jakiej wielkości powinien być tekst w normalnym trybie, czyli przy ctrl+0.
>klnąć na debila który ustawił wartości rozmiaru tekstu na px a nie em.
Przecież nie ma nic do rzeczy w jakiej jednostce określił wielkość tekstu. I tak możesz sobie go przeskalować jeśli jest za mały.
I o to chodziło w moim wpisie, że nie powinno się dać. Debil to debil… nie zrozumiał jak się pisze strony i „ma zonka”.
Naprawdę nie zrozumiałeś, że ja piszę o sytuacji idealnej, utopijnej, gdzie każdy wie że emy są OK do tekstu a px do elementów stricte przeznaczonych dla dizajnu (ale nie musiałoby być to regułą).
Zobaczysz na dniach o czym mówię, też sądziłem, że emami się da wszystko.
Ok... chyba zero zrozumienia z obydwu stron ;p
Ja lubie pixele i em-y -[