CSS ile bir web sitesinin tamamına tek bir yazı tipi uygulama


93

Tüm web sitemde "Cezayir" adlı tek bir yazı tipi kullanmak istiyorum. Bu nedenle, tüm HTML etiketlerini değiştirmem gerekiyor ve aşağıdaki gibi farklı etiketler için farklı kod yazmak istemiyorum:

button{font-family:Algerian;}
div{font-family:Algerian;}

Aşağıda yazılı yöntem de kesinlikle önerilmez:

div,button,span,strong{font-family:Algerian;}

3
font-family miras alınan bir değerdir, öyleyse neden onu sadece vücutta tanımlamayalım?

Cevabı Jukka K. Korpela'dan seçmek isteyebilirsiniz. Şu anda seçilen cevaptan yaklaşık bir ay önce ve neredeyse aynı içeriğe sahip.
okm


Hiçbir zaman (Jan Hančič) cevabını kullanmamanızı öneririm çünkü yazı tipinizi değiştirmek istemediğiniz etiketi bile tüm html etiketlerine uygular. örneğin: bir td etiketinin içinde bir img etiketi oluşturup bunu text-align: center ve vertical-align: middle yaptıysanız. bu şekilde kullandığınızda img etiketiniz asla TD'nin merkezi olmayacaktır. en iyi yol: belgenizi kontrol edin ve içinde metin bulunan etiketlere yazı tipi biçimini uygulayın
Mahdi Jazini

Yanıtlar:


118

font-familyBeyanı bir bodyseçiciye koyun :

body {
  font-family: Algerian;
}

Sayfanızdaki tüm öğeler bu yazı tipi ailesini devralacaktır (tabii daha sonra onu geçersiz kılmadığınız sürece).


11
Bir öğe font-family, yalnızca öğenin yazı tipi ailesini hiçbir stil sayfası belirlemediğinde üst öğesinden miras alır . Tarayıcı stil sayfaları tipik olarak en az için yazı tipi ailesini ayarlayın input, textarea, code, tt, ve preelemanları.
Jukka K. Korpela

Haklısın. CSS sıfırlamalarıyla o kadar uzun süredir çalışıyorum ki, bu tür şeyleri unutuyorum :)
Jan Hančič

Ya da daha iyisi, en iyi iki cevabı birleştirin ... body, * {font-family: Algerian;}
james ace

106
*{font-family:Algerian;}

daha iyi çözüm aşağıda CSS ile tüm bir web sitesine tek bir yazı tipi uygulama


3
İlginçtir ki, Eric Meyer'in CSS sıfırlamasını kullanırken bu işe yaramıyor
ianbeks

Bu yazı tipi ailesini her bir öğeye uygulamıyor mu? Bu, onu gereksiz öğelere (<img> gibi) uygulayacak ve verimsiz olacak gibi görünüyor. Kesinlikle yanılıyor olabilirim, ancak her şeye bir stil uygularken dikkatli olmayı okudum.
Max Strater

Evrensel kural geçersiz kılınamadığından, sitenizde ikinci bir yazı tipi kullanamazsınız.
Julian F.Weinert

Noboy bundan bahsettiğinden, evrensel seçicinin yavaş olduğu bilinmektedir. bununla ilgili daha fazla bilgiyi
Terje Solem

Ya da daha iyisi, en iyi iki cevabı birleştirin ... body, * {font-family: Algerian;}
james ace

50

Evrensel seçici *tüm öğelere atıfta bulunur, bu css sizin için yapacaktır:

*{
  font-family:Algerian;
}

Ancak ne yazık ki FontAwesome simgelerini veya kendi yazı tipi ailesini gerektiren herhangi bir Simgeyi kullanıyorsanız , bu yalnızca simgeleri yok eder ve gerekli görünümü göstermezler.

Bundan kaçınmak için :notseçiciyi kullanabilirsiniz , bir fontawesome simgesi örneği <i class="fa fa-bluetooth"></i>, yani şunları kullanabilirsiniz:

*:not(i){
  font-family:Algerian;
}

bu, bu aileyi, etiket adlı öğeler dışında belgedeki tüm öğelere uygular <i>, bunu sınıflar için de yapabilirsiniz:

*:not(.fa){
  font-family:Algerian;
}

bu, bu aileyi fontawesome varsayılan sınıfa atıfta bulunan "fa" sınıfına sahip öğeler dışında belgedeki tüm öğelere uygular, ayrıca aşağıdaki gibi birden fazla sınıfı hedefleyebilirsiniz:

*:not(i):not(.fa):not(.YourClassName){
  font-family:Algerian;
}

Bu cevap nedeniyle önyükleme (glyphicons) simgelerin kullanımına web sayfalarında stil güncel kullanımı göre çok gerekli bir ayrıntı verir ve müthiş yazı tipi
Lakshman

lütfen unutmayın: (seçici değil) tüm tarayıcılarla uyumlu olmayan CSS3'tür. IE 9+, dünyanın her yerindeki tüm insanların IE -9 ailelerini sonsuza dek terk etmesi için en az 10 yıl beklemeliyiz: D: '(
Mahdi Jazini

19

Evrensel seçici * ile birlikte önemli öğesini kullanarak mobil cihazların yazı tipini varsayılan yazı tipiyle değiştirmediğinden emin olun:

* { font-family: Algerian !important;}


3

Tarayıcı tarafından form öğeleri için farklı bir yazı tipi tanımlanmış olması muhtemel olduğundan, bu yazı tipini her yerde kullanmanın 2 yolu vardır:

body, input, textarea {
    font-family: Algerian;
}

body {
    font-family: Algerian !important;
}

Pre / code, kbd, vb.Gibi öğelerde hala tek aralıklı bir yazı tipi olacaktır, ancak bu öğeleri kullanmanız durumunda, orada bir tek aralıklı yazı tipi kullanmalısınız.

Önemli not: Çok az kişinin işletim sisteminde bu yazı tipi yüklüyse, listedeki ikinci yazı tipi kullanılacaktır. Burada ikinci bir yazı tipi tanımlamadınız, bu nedenle varsayılan serif yazı tipi kullanılacak ve belki Linux dışında Times, Times New Roman olacak.
İki seçenek var: Yazı tipiniz indirilebilir bir yazı tipi olarak kullanılamıyorsa @ font-face kullanın veya yedek (ler) ekleyin: ikinci, üçüncü vb. Ve son olarak varsayılan bir aile (sans-serif, cursive (*), monospace veya serif). Kullanıcının işletim sisteminde bulunan listenin ilki kullanılacaktır.

(*) Windows'taki varsayılan el yazısı Comic Sans'tır. Windows kullanıcılarını trollemek istiyorsanız, bunu yapmayın :) Bu yazı tipi, çocuklarınızın hoş karşılanacağı doğum günleri dışında berbattır.


2

"Gövde" için 1 ve aynı yazı tipinin kullanılması gerekiyorsa lütfen bunu Sayfalarınızın başına yerleştirin:

<style type="text/css">
body {font-family:FONT-NAME ;
     }
</style>

Etiketler arasına <body>ve </body>aynı yazı tipini sahip olacak


1

Tamam, birkaç farklı seçeneği denediğim bu sorunu yaşıyordum.

Kullandığım yazı tipi Ubuntu-LI, çalışma dizinimde bir yazı tipi klasörü oluşturdum. klasör yazı tiplerinin altında

Onu uygulayabildim ... sonunda işte çalışma kodum

Bunun web sitemin tamamına uygulanmasını istedim, bu yüzden css belgesinin en üstüne koydum. tüm Div etiketlerinin üzerinde (önemli olduğundan değil, sadece komut dosyanıza atadığınız her bir yazı tipinin öncelikli olacağını bilin)

@font-face{
    font-family: "Ubuntu-LI";
    src: url("/fonts/Ubuntu/(Ubuntu-LI.ttf"),
    url("../fonts/Ubuntu/Ubuntu-LI.ttf");
}

*{
    font-family:"Ubuntu-LI";
}

Daha sonra tüm H1 etiketlerimin başka bir şey olmasını isteseydim, sans sar diyelim, eğer şöyle bir şey yapardım

h1{
   font-family: Sans-sarif;
}

Bu durumda, yalnızca H1 etiketlerim sans-sarif yazı tipi ve sayfamın geri kalanı Ubuntu-LI yazı tipi olacaktır


0

Bootstrap'te, web denetçisi Başlıkların 'devralın' olarak ayarlandığını söylüyor

sayfamı yeni yazı tipine ayarlamak için ihtiyacım olan tek şey

div, p {font-family: Algerian}

bu .scss'de


-1
*{font-family:Algerian;}

bu html benim için çalıştı. WordPress'teki tuval ayarlarına eklendi.

Harika görünüyor - teşekkürler!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.