Mvc: إنشاء<link/> مساعد العلامات مع دعم للمصادر الاحتياطية

تم إنشاؤها على ١٨ نوفمبر ٢٠١٤  ·  3تعليقات  ·  مصدر: aspnet/Mvc

هذه هي ورقة أنماط CSS المكافئة لـ # 1576

A LinkTagHelper يسمح بمواصفات ورقة الأنماط الاحتياطية ليتم تحميلها في حالة فشل التحميل الأساسي. يتم تحديد الفشل عن طريق حقن علامة وهمية <meta> مع اسم فئة محدد (سمة asp-fallback-test-class ) ثم اختبار النمط المحسوب لهذا العنصر لمعرفة ما إذا كانت خاصية CSS محددة ( asp-fallback-test-property سمة asp-fallback-test-value ).

إستعمال

<link href=""
      asp-fallback-href=""
      asp-fallback-test-class=""
      asp-fallback-test-property=""
      asp-fallback-test-value="" />

يجب أن تكون جميع السمات موجودة وغير خالية حتى يعمل مساعد العلامات. إذا كان أي منها مفقودًا ، فسيتم تسجيل تحذير وعدم تشغيل.

الحجج

| اسم السمة | اكتب | التفاصيل |
| --- | --- | --- |
| ASP-Fallback-href | string | عنوان URL الذي سيتم الرجوع إليه في حالة فشل العنوان الأساسي (كما هو محدد في السمة href ) |
| فئة اختبار النسخ الاحتياطي | string | اسم الفئة المحدد في ورقة الأنماط لاستخدامه في الاختبار الاحتياطي |
| ASP-Fallback-test-property | string | اسم خاصية CSS المطلوب استخدامه للاختبار الاحتياطي |
| قيمة اختبار ASP-الاحتياطية | string | قيمة خاصية CSS لاستخدامها في الاختبار الاحتياطي |

مثال

المصدر CSHTML

 <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" />

إخراج HTML

<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>
3 - Done enhancement feature-Tag-Helpers

التعليق الأكثر فائدة

آسف للتعليق على قضية قديمة / مغلقة. هل كان هناك أي نقاش بشأن خيار اختبار ملفات .css التي لا تحتوي على فئات فردية؟

مثالان:

  • تحتوي dataTables.bootstrap.css على حد أدنى على table.dataTable { ... } لكن لا يوجد فئة .dataTable قائمة بذاتها.

  • وبالمثل مع skin-red.css ، لا يوجد سوى محددات .skin-red .main-header .navbar { ... } ومرة أخرى لا توجد فئة .skin-red قائمة بذاتها.

ال 3 كومينتر

آسف للتعليق على قضية قديمة / مغلقة. هل كان هناك أي نقاش بشأن خيار اختبار ملفات .css التي لا تحتوي على فئات فردية؟

مثالان:

  • تحتوي dataTables.bootstrap.css على حد أدنى على table.dataTable { ... } لكن لا يوجد فئة .dataTable قائمة بذاتها.

  • وبالمثل مع skin-red.css ، لا يوجد سوى محددات .skin-red .main-header .navbar { ... } ومرة أخرى لا توجد فئة .skin-red قائمة بذاتها.

@ kylef000 هذا مثير للاهتمام ، لست متأكدًا من كيفية اختبار المرء لذلك بطريقة عامة كما نفعل باستخدام العنصر <meta /> المحقون.

DamianEdwards آه ، حسنًا. لم أجد الكثير في طريق الأسئلة المتعلقة بهذا الأمر في بحثي السريع عن هذه المسألة ، لذلك قد لا يكون شيئًا يستحق استثمار الوقت فيه. ربما تكون أفضل طريقة للتغلب على ذلك هي التفرع وإضافة فصل اختبار (مثل .skin-red-fallback-test { ... } ) داخل الملف الفردي ، ثم عمل علاقات عامة لأي مكتبة معينة قد يستخدمها المرء.

شكرا لك على الرد. نقدر حقًا عملك على جميع الأشياء C #!

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات