Beberapa bobot font, satu kueri @ font-face


118

Saya harus mengimpor font Klavika dan saya telah menerimanya dalam berbagai bentuk dan ukuran:

Klavika-Bold-Italic.otf
Klavika-Bold.otf
Klavika-Light-Italic.otf
Klavika-Light.otf
Klavika-Medium-Italic.otf
Klavika-Medium.otf
Klavika-Regular-Italic.otf
Klavika-Regular.otf

Sekarang saya ingin tahu apakah mungkin untuk mengimpornya ke CSS hanya dengan satu @font-face-query, di mana saya mendefinisikannya weightdalam kueri. Saya ingin menghindari menyalin / menempel kueri 8 kali.

Jadi sesuatu seperti:

@font-face {
  font-family: 'Klavika';
  src: url(../fonts/Klavika-Regular.otf), weight:normal;
  src: url(../fonts/Klavika-Bold.otf), weight:bold;
}

4
Ini bukan 1 font ... ini banyak font ... jadi sayangnya, saya pikir Anda harus tersenyum dan menanggungnya.
Paulie_D

Ya maaf, ini font berbeda dalam keluarga yang sama.
Rvervuurt

Beberapa file font web === bobot berbeda
Eric

2
artikel ini mungkin bisa membantu: 456bereastreet.com/archive/201012/… sebenarnya ada SO Answer di sini: stackoverflow.com/questions/10045859/… yang menggunakan artikel itu, alternatif untuk apa yang Anda inginkan karena apa yang Anda inginkan tidak mungkin.
97ldave

Jawaban:


270

Sebenarnya ada rasa khusus dari @ font-face yang akan mengizinkan apa yang Anda tanyakan.

Berikut adalah contoh menggunakan nama font-family yang sama dengan gaya dan bobot berbeda yang terkait dengan font berbeda:

@font-face {
  font-family: "DroidSerif";
  src: url("DroidSerif-Regular-webfont.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: "DroidSerif";
  src: url("DroidSerif-Italic-webfont.ttf") format("truetype");
  font-weight: normal;
  font-style: italic;
}

@font-face {
  font-family: "DroidSerif";
  src: url("DroidSerif-Bold-webfont.ttf") format("truetype");
  font-weight: bold;
  font-style: normal;
}

@font-face {
  font-family: "DroidSerif";
  src: url("DroidSerif-BoldItalic-webfont.ttf") format("truetype");
  font-weight: bold;
  font-style: italic;
}

Anda sekarang dapat menentukan font-weight:boldatau font-style:italicke elemen apa pun yang Anda suka tanpa harus menentukan font-family atau menimpa font-weightdan font-style.

body { font-family:"DroidSerif", Georgia, serif; }

h1 { font-weight:bold; }

em { font-style:italic; }

strong em {
  font-weight:bold;
  font-style:italic;
}

Untuk gambaran umum lengkap tentang fitur ini dan penggunaan standar, lihat artikel ini.


CONTOH PEN


1
seperti yang saya sarankan dalam komentar saya di atas ;-)
97ldave

4
Dalam kasus saya, ini hanya menggunakan @ font-face terendah. Itu akan menjadi font-weight: bold; font-style: italic; setiap kali saya mengacu pada font-family: 'DroidSerif';
Simon Arnold

1
Apakah Anda memiliki tes yang membuktikan metode ini benar-benar berfungsi? Bagaimana Anda membuktikan bahwa browser tidak hanya memalsukan bobot atau gaya tanpa membaca file font yang benar?
rojobuffalo

1
@rojobuffalo berikut adalah contoh pena, berfungsi seperti yang diharapkan.
maioman

2
@rojobuffalo membuat poin yang sangat valid. Pena tidak melakukan apa pun untuk memverifikasi validitas pernyataan bahwa ini akan berperilaku seperti yang diharapkan. Secara khusus, saya menghapus deklarasi font-face tebal dari contoh CSS dan menjalankannya lagi. Penampilannya pun identik. Apakah itu menarik dari cache? Apakah browser hanya mengutak-atik bobot font biasa yang ditampilkan?

10
@font-face {
  font-family: 'Klavika';
  src: url(../fonts/Klavika-Regular.otf) format('truetype') font-weight-normal,
       url(../fonts/Klavika-Bold.otf) format('truetype') font-weight-bold,
       url(../fonts/Klavika-Bold-Italic.otf) format('truetype') font-italic font-weight-bold;
}

17
Harap tulis sedikit penjelasan tentang mengapa ini akan menyelesaikan masalah. Ini bisa menjadi sesuatu yang sederhana seperti kalimat.
ggderas

3
Solusi yang sama dengan yang sebelumnya. Notasi hanya lebih pendek :)
Mirka Nimsová

2
Di mana saya dapat membaca tentang notasi ini? Tidak melihatnya di MDN
longsoran1

Tampaknya tidak berhasil dan saya tidak dapat menemukan sumber daya, namun tampaknya ada benarnya.
dakab
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.