cssfontsfont-face

Multiple font-weights, one @font-face query


I have to import the Klavika font and I've received it in multiple shapes and sizes:

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

Now I would like to know if it's possible to import those into CSS with just one @font-face-query, where I'm defining the weight in the query. I want to avoid copy/pasting the query 8 times.

So something like:

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

Solution

  • Actually there is a special flavor of @font-face that will permit just what you're asking.

    Here's an example using the same font-family name with different styles and weights associated with different fonts:

    @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;
    }
    

    You can now specify font-weight:bold or font-style:italic to any element you like without having to specify the font-family or overriding font-weight and font-style.

    body { font-family:"DroidSerif", Georgia, serif; }
    
    h1 { font-weight:bold; }
    
    em { font-style:italic; }
    
    strong em {
      font-weight:bold;
      font-style:italic;
    }
    

    For a full overview of this feature and the standard use take a look at this article.


    EXAMPLE PEN