Czy ustawiając rozmiar czcionek w CSS, powinienem używać wartości procentowej ( %
) czy em
? Czy możesz wyjaśnić zalety?
Czy ustawiając rozmiar czcionek w CSS, powinienem używać wartości procentowej ( %
) czy em
? Czy możesz wyjaśnić zalety?
Odpowiedzi:
W A List Apart jest naprawdę dobry artykuł o typografii internetowej .
Ich wniosek:
Wykazano, że rozmiar tekstu i wysokość linii w emach, z procentem określonym w treści (i opcjonalnym zastrzeżeniem dla Safari 2), zapewnia dokładny tekst z możliwością zmiany rozmiaru we wszystkich powszechnie używanych przeglądarkach. Jest to technika, którą możesz włożyć do torby i użyć jako sprawdzonej metody określania rozmiaru tekstu w CSS, która zadowoli zarówno projektantów, jak i czytelników.
line-heights
są lepiej napisane bez żadnych jednostek. Jest to dozwolone przez specyfikację i całkowicie pozwala uniknąć pewnych naprawdę irytujących dziwactw przeglądarki, jeśli chodzi o em
wysokości linii
1
. Na przykład iPhone 4 ma fizyczną szerokość ekranu 640 pikseli, ale jest wyświetlany jako 320 pikseli „CSS” (DPR = 2). Więc strona nie wydaje się mniejsza!
Z http://archivist.incutio.com/viewlist/css-discuss/1408
%: Niektóre przeglądarki nie obsługują procentu dla rozmiaru czcionki, ale interpretują 150% jako 150 pikseli. (Na przykład niektóre wersje NN4). IE również ma problemy z procentami w elementach zagnieżdżonych. Wygląda na to, że IE używa procentu względem widocznego obszaru zamiast względnego względem elementu nadrzędnego. Kolejny problem (choć poprawny zgodnie ze specyfikacją W3C), w Moz / Ns6 nie można używać procentów względem elementów bez określonej wysokości / szerokości.
em: Czasami przeglądarki używają niewłaściwego rozmiaru odniesienia, ale spośród jednostek względnych jest to ta z najmniejszymi problemami. Czasami może się jednak okazać, że jest interpretowane jako px.
pt: Różni się znacznie między rozdzielczościami i nie powinien być używany do wyświetlania. Jest jednak całkiem bezpieczny do użytku w druku.
px: jedyna niezawodna jednostka absolutna na ekranie. Może to jednak zostać błędnie zinterpretowane w druku, ponieważ jeden punkt składa się zwykle z kilku pikseli, przez co wszystko staje się śmiesznie małe.
Oba dostosowują rozmiar czcionki w stosunku do tego, jaki był. 1.5em to to samo, co 150%. Jedyną zaletą wydaje się być czytelność, wybierz tę, która najbardziej Ci odpowiada.
Prawdziwa różnica jest widoczna, gdy używasz jej nie dla rozmiarów czcionek. Ustawianie padding
z 1em
nie jest taki sam jak 100%
. em
jest zawsze zależna od rozmiaru czcionki. Ale %
może być zależne od rozmiaru czcionki, szerokości, wysokości i prawdopodobnie kilku innych rzeczy, o których nie wiem.
Biorąc pod uwagę, że (prawie?) Wszystkie przeglądarki zmieniają teraz rozmiar strony jako całości, a nie tylko tekstu, poprzednie problemy z px
wersją %
vs. em
s, jeśli chodzi o zmianę rozmiaru dostępnej czcionki, są raczej dyskusyjne.
Tak więc odpowiedź brzmi, że prawdopodobnie nie ma to znaczenia. Użyj tego, co Ci odpowiada.
%
jest fajny, ponieważ pozwala na względną zmianę rozmiaru.
px
jest fajny, ponieważ podczas korzystania z niego dość łatwo jest zarządzać oczekiwaniami.
em
może być przydatny, gdy jest również używany do elementów układu, ponieważ umożliwia proporcjonalne dopasowanie rozmiaru do rozmiaru tekstu.
em
Na przykład versus . Poza tym uważam, że odpowiedzi na SO powinny starać się być ponadczasowe - w końcu to baza wiedzy. Wikipedia programowania :) Ponieważ Wikipedia jest aktualizowana, aby odzwierciedlała fakty, tak moim skromnym zdaniem powinny być odpowiedzi SO.
Jeśli chodzi o różnicę między jednostkami CSS %
i em
.
O ile mi zrozumieć (przynajmniej teoretycznie / koncepcyjnie, ale być może nie w jaki sposób te dwie jednostki mogą być realizowane w przeglądarkach) te dwa zespoły są równoważne, to znaczy, jeśli pomnożyć em
wartość z 100
a następnie wymienić em
z %
nim powinno być to samo?
Jeśli rzeczywiście istnieje jakaś prawdziwa różnica między em a%, to czy ktoś może to wyjaśnić (lub podać link do wyjaśnienia)?
(Chciałem dodać ten komentarz mój, gdzie by należał, tj. Wcięty tuż pod odpowiedzią, "Liam, answered Sep 25 '08 at 11:21"
ponieważ chcę również wiedzieć, dlaczego jego odpowiedź została odrzucona, ale nie mogłem wymyślić, jak umieścić tam mój komentarz i dlatego musiałem napisać ta „globalna odpowiedź wątku”)
Jak wspomina Galwegian, px jest najbardziej niezawodny w typografii internetowej, ponieważ wszystko inne, co robisz na stronie, jest głównie rozłożone w odniesieniu do monitora komputera. Problem z rozmiarami bezwzględnymi polega na tym, że niektóre przeglądarki (IE) nie skalują elementów wartości w pikselach na stronie internetowej, więc kiedy próbujesz powiększyć / pomniejszyć, wszystko dostosowuje się z wyjątkiem tych elementów.
Nie wiem, czy IE8 radzi sobie z tym poprawnie, ale wszyscy inni dostawcy przeglądarek obsługują piksele dobrze i nadal jest to przypadek mniejszości, w którym użytkownik musi powiększyć / pomniejszyć tekst (to pole tekstowe na SO może być wyjątkiem). Jeśli chcesz być naprawdę brudny, zawsze możesz dodać funkcję javascript, aby zwiększyć rozmiar tekstu i zaoferować użytkownikowi przycisk „mały” / „większy”.
Biblioteka interfejsu użytkownika Yahoo ( http://developer.yahoo.com/yui/ ) ma ładny zestaw podstawowych klas css używanych do "resetowania" ustawień specyficznych dla przeglądarki tak, aby podstawa wyświetlania strony była taka sama dla wszystkich (obsługiwane) przeglądarki.
W przypadku YUI należy używać procentów.