Istnieją zasadniczo dwa sposoby pogrubienia czcionki w CSS: za pomocą font-family
atrybutu i za pomocą font-weight
atrybutu.
Powiedzmy, że używam na przykład czcionki Raleway i załadowałem wariant Light, Regular, Semibold i Bold przez css. Mógłbym pogrubić prosty nagłówek, ustawiając go na h1{font-family: 'Raleway Bold'}
lub do h1{font-weight: 700}
.
Które z nich jest bardziej poprawne, czy oba są takie same?
Odpowiedzi:
Załóżmy, że załadowaliśmy wariant czcionki pogrubionej, taki jak:
Argumentowałbym za zastosowaniem obu tych parametrów
font-family
orazfont-weight
w specyfikacji Twojego stylu. Na przykład:Oba zasadniczo robią to samo: powiedz nagłówkowi 1, aby był pogrubiony. Nie podwoi to śmiałości ani nic, po prostu powtarza, że musi być odważny.
Powód tego jest dość prosty: jeśli plik czcionek nie jest załadowany (przeciążenie serwera, ograniczenia klienta, voodoo), wtedy odwiedzający nadal zobaczy pogrubioną czcionkę (w tym przypadku fałszywą pogrubioną czcionkę Helvetica), a tym samym może rozróżnić tytuł i treść, co nie byłoby prawdą, gdybyś tylko podał
font-family
.Zobacz na tym obrazie, że najwyższy zestaw to Raleway i Raleway Italic, ale ma odpowiednią Raleway Italic ładowaną z:
<link href='https://fonts.googleapis.com/css?family=Raleway:500,500italic' rel='stylesheet' type='text/css'>
Dno tylko ładuje Raleway. W rezultacie dolny zestaw ma kursywę Raleway i FAUX Raleway. Zwróć uwagę na różnice małymi literami „a” i „k”, na przykład między prawdziwą kursywą a faux kursywą. Dobrze zaprojektowana czcionka będzie miała różnice między czcionkami regularnymi, pogrubionymi i kursywą, których nie dostaniesz, jeśli ich nie załadujesz.
źródło
font-family: 'Raleway'
(co jest sprzeczne z odważnym przykładem powyżej), ale dodatkowo, niezależnie od nazwania całej rodzinyRaleway
lub każdego wariantu osobno różnymi nazwami rodzin czcionek, nie ma absolutnie żadnego wpływu na stosowanie fałszywych lub nie . Nawet własny przykład dowodzi, że jest to błędny sposób, zgodnie z warunkiemfont-family: 'Raleway Bold', Helvetica, Arial, sans;
maHelvetica Bold
iArial Bold
indywidualnie, ponieważ to właśnie błędny sposób warianty czcionki kaskada.Podczas gdy oba sposoby zapewnią poprawne wyjście, bardziej poprawnym sposobem byłoby użycie jednej rodziny czcionek do grupowania wszystkich różnych wariantów grubości i stylów. W ten sam sposób używasz czcionek systemowych (od „Arial” do „sans-serif”), a jeśli używasz czcionek Google do ładowania Raleway, używałbyś trasy pojedynczej rodziny czcionek.
Podajmy kilka powodów, dla których jest to poprawna metoda.
Zmniejsza złożoność CSS i ostatecznie rozmiar pliku
Posiadanie jednej rodziny czcionek oznacza, że możesz zdefiniować cały element zawierający rodzinę czcionek i tylko niektóre elementy o różnej gramaturze / stylu. Weźmy na przykład:
Zauważ, jak miły i pocieszający jest ten CSS. Nie musieliśmy określać „RalewayBold” jako rodziny czcionek dla .bold ani „RalewayItalic” dla naszego .italic. W rzeczywistości nie musimy nawet określać odważnego i kursywnego wariantu, ponieważ nasze klasy po prostu będą działać. Ponadto, jeśli .bold znajduje się w naszym .footer, będzie pogrubiony Arial, a nie Raleway, ponieważ po prostu dziedziczy Arial z kontenera stopki.
Tak robi to przeglądarka.
Powyżej jest zasadniczo to, jak wewnętrzny arkusz stylów przeglądarki definiuje czcionki przy użyciu minimalnych stylów i nieodłącznej kaskadowej natury CSS.
Jest to sposób, w jaki robi to przemysł.
Największe usługi internetowe, aplikacje i wydawcy robią to w ten sposób. Google, Facebook, NYT, ESPN itp. Wszystkie definiują i używają czcionek w ten sposób.
Nie tylko to, ale interfejsy użytkownika przed CSS lub nawet w Internecie określają pojedyncze rodziny czcionek i wybierają warianty w oparciu o inną specyfikację wagi i stylu. Załaduj Microsoft Word, KeyNote, Dokumenty Google, a nawet stary WordPerfect z końca lat 90. i otwórz listę rozwijaną czcionek; Zobaczysz nazwę rodziny czcionek „Arial”; nie „Arial”, po których następuje „Arial Bold”, po których następuje „Arial Italic” itp.
Wystarczy załadować z czcionek Google.
Jeśli załadujesz Raleway z bezpłatnego repozytorium webfonts na Google Fonts, zobaczysz, że Raleway jest zdefiniowany z jedną nazwą rodziny:
https://fonts.googleapis.com/css?family=Raleway:400,400italic 500,00 500italic 700,0000italic
źródło
Raleway
przypadku wariantów grubości / stylu lub niepoprawnie definiująca poszczególne wariantyRaleway Bold
iRaleway Italic
poszczególne rodziny czcionek) nie ma wpływu na stosowanie fałszywych odmian, czy też nie. W rzeczywistości prawidłowe powiązanie rodziny o tej samej nazwie pomaga przeglądarce wybrać bliższą odmianę, aby zastosować fałszywy styl, a niepoprawne nazewnictwo każdej odmiany osobno utrzymuje przeglądarkę w ciemności dostępnych czcionek, aby zastosować odmiany, jeśli żądana czcionka nie zostanie załadowana.font-family:Arial; font-weight:bold;
(który znowu jest właściwy sposób , niezależnie od tego, czy jest to Arial czy Raleway), czy myślisz, że przeglądarka nakłada pogrubioną czcionkę na normalną czcionkę Arial? Błędny. Przeglądarka ładuje czcionkę ArialBold zgodnie z definicją systemu i tylko jeśli nie ma dostępnej dokładnej czcionki , zastosuje sztuczny styl do najlepiej pasującej czcionki na podstawie nazwy rodziny czcionek, dlatego muszą być takie same! Nie można powiedzieć „Zrób to dla Arial, ale nie dla Raleway”.Chodzi o to, że jeśli zadajesz pytanie o Raleway, webfont zaprogramowany dla css, oba sposobyj działają równie dobrze. W takim przypadku należy użyć grubości czcionki, ponieważ jest to „poprawny” sposób działania, który najłatwiej będzie zmienić i kontrolować bez większych zmian w kodzie.
Teraz zaczynasz mieć problemy po samodzielnym osadzeniu czcionki, która niekoniecznie jest planowana dla css, a jej wagi mogą nie pasować do liczb.
Z tego powodu bardzo częstym błędem osadzonych czcionek, niezwykle powszechnym w czcionkach nieanglojęzycznych, jest to, że css automatycznie „pogrubia” lub „rozjaśnia” czcionkę automatycznie, a wynik jest bardzo zły.
Dlatego polecam, jeśli używasz strony internetowej takiej jak czcionki w czcionkach Google, śmiało i używaj liczb na grubości czcionki, ale kiedy osadzasz czcionkę samodzielnie, pozostań po bezpiecznej stronie i używaj rodziny czcionek dla każdej pojedynczej wagi osobno .
źródło