[英]ASP.NET Core asp-fallback tag helper with pseudo selectors (and bootstrap-icons)
LinkTagHelper
回退機制不支持偽選擇器。 repo上有一個跟蹤問題,所以它可能會在 v7 中修復。
在那之前,我正在使用WORKAROUND 。 我擴展了框架的后備代碼以考慮偽選擇器。
將此添加到 DOM:
@{
var testClass = "bi";
var testPseudoSelector = "::before";
var testProperty = "font-family";
var testValue = "bootstrap-icons !important";
var hrefFallback = "/bootstrap-icons.css";
}
<meta name="x-stylesheet-fallback-test" content="" class="@testClass" />
<script>
var scriptTag = document.getElementsByTagName('SCRIPT'); // this tag is "last" when browser gets here
var metaTag = scriptTag[scriptTag.length - 1].previousElementSibling; // ...so meta tag immediately before is the one we want
var metaStyles = document.defaultView && document.defaultView.getComputedStyle
? document.defaultView.getComputedStyle(metaTag, '@testPseudoSelector') // here is the magic
: metaTag.currentStyle;
if (metaStyles && metaStyles['@testProperty'] !== '@testValue');
document.write('<link rel="stylesheet" href="' + '@hrefFallback' + '" crossorigin="anonymous" />');
</script>
這與標簽助手所做的非常相似,除了它還考慮使用getComputedStyle(element, pseudoSelector)
覆蓋的::before
偽選擇器。
我只需要一個庫(bootstrap-icons)的這種解決方法,但如果你發現你反復使用它,你可以將它重構為一個自定義標簽助手,例如PseudoSelectorAwareLinkTagHelper
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.