Atualização de 2020
A resposta simples (suporte completo ao navegador):
<link rel="stylesheet" href="style.css" media="print" onload="this.media='all'">
A resposta documentada (com pré-carregamento opcional e fallback desativado por script):
<link rel="preload" href="style.css" as="style">
<link rel="stylesheet" href="style.css" media="print" onload="this.media='all'">
<noscript><link rel="stylesheet" href="style.css"></noscript>
Pré-carregamento e assíncrono combinados:
Se você precisa de CSS pré-carregado e assíncrono, esta solução simplesmente combina duas linhas da resposta documentada acima, tornando-a um pouco mais limpa. Mas isso não funcionará no Firefox até que eles suportem a palavra-chave preload . E, novamente, conforme detalhado na resposta documentada acima, o pré-carregamento pode não ser benéfico.
<link href="style.css" rel="preload" as="style" onload="this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="style.css"></noscript>
Considerações adicionais:
Observe que, em geral, se você for carregar CSS de forma assíncrona, é geralmente recomendado que você inline CSS crítico , já que CSS é um recurso de bloqueio de renderização por um motivo .
Crédito ao grupo de filamentos por suas muitas soluções CSS assíncronas.