Esta é a folha de estilo CSS equivalente a # 1576
Um LinkTagHelper
que permite a especificação de uma folha de estilo substituta para carregar no caso de falha no carregamento do primário. A falha é determinada injetando uma tag fictícia <meta>
com um nome de classe especificado ( asp-fallback-test-class
attribute) e, em seguida, testando o estilo computado desse elemento para ver se uma propriedade CSS especificada ( asp-fallback-test-property
attribute) é igual a um valor especificado ( asp-fallback-test-value
).
<link href=""
asp-fallback-href=""
asp-fallback-test-class=""
asp-fallback-test-property=""
asp-fallback-test-value="" />
Todos os atributos devem estar presentes e não nulos para que o Tag Helper opere. Se algum estiver faltando, ele registrará um aviso e não operará.
| Nome do atributo | Tipo | Detalhes |
| --- | --- | --- |
| asp-fallback-href | string
| O URL para o qual fazer fallback se o principal falhar (conforme especificado no atributo href
) |
| asp-fallback-test-class | string
| O nome da classe definido na folha de estilo a ser usado para o teste de fallback |
| asp-fallback-test-property | string
| O nome da propriedade CSS a ser usada para o teste de fallback |
| asp-fallback-test-value | string
| O valor da propriedade CSS a ser usado para o teste de fallback |
<link href="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet"
asp-fallback-href="~/lib/bootstrap/css/bootstrap.min.css"
asp-fallback-test-class="hidden" asp-fallback-test-property="visibility" asp-fallback-test-value="hidden" />
<link href="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet" />
<meta name="x-stylesheet-fallback-test" class="hidden" />
<script>
(function (a, b, c) {
var d = document,
s = d.getElementsByTagName("SCRIPT"),
meta = s[s.length-1].previousSibling;
(d.defaultView.getComputedStyle(meta)[a] === b ||
d.write('\u003clink rel="stylesheet" href="' + c + '" /\u003e'));
})("visibility", "hidden", "/lib/bootstrap/css/bootstrap.min.css");
</script>
Desculpe por comentar sobre um problema antigo / encerrado. Já houve alguma discussão sobre a opção de testar arquivos .css que não têm classes singulares?
Dois exemplos:
dataTables.bootstrap.css tem no mínimo dois seletores encadeados como table.dataTable { ... }
mas nenhuma classe .dataTable
autônoma.
Da mesma forma com skin-red.css , existem apenas seletores descendentes como .skin-red .main-header .navbar { ... }
e novamente nenhuma classe .skin-red
autônoma.
@ kylef000 isso é interessante, eu não tenho certeza de como alguém poderia testar isso de uma forma genérica como fazemos usando o elemento <meta />
injetado.
@DamianEdwards Ah, certo. Não vi muitas perguntas a respeito disso em minha pesquisa apressada sobre o assunto, então pode não ser algo em que valha a pena investir tempo. Provavelmente, a melhor maneira de contornar isso é bifurcar, adicionar uma classe de teste (como .skin-red-fallback-test { ... }
) dentro do arquivo individual e, em seguida, fazer um PR para qualquer biblioteca particular que alguém possa estar usando.
Obrigado pela resposta. Realmente aprecio seu trabalho em todas as coisas do C #!
Comentários muito úteis
Desculpe por comentar sobre um problema antigo / encerrado. Já houve alguma discussão sobre a opção de testar arquivos .css que não têm classes singulares?
Dois exemplos:
dataTables.bootstrap.css tem no mínimo dois seletores encadeados como
table.dataTable { ... }
mas nenhuma classe.dataTable
autônoma.Da mesma forma com skin-red.css , existem apenas seletores descendentes como
.skin-red .main-header .navbar { ... }
e novamente nenhuma classe.skin-red
autônoma.