CSS @سپورٹس رول

تعریف و استفاده

CSS @supports این قوانین برای تست این که آیا مرورگر از یک ویژگی CSS مشخص پشتیبانی می‌کنه یا نه استفاده می‌شه و در صورت عدم پشتیبانی، استایل‌های جایگزین رو تعریف می‌کنه.

مثال

اگر مرورگر از display: grid پشتیبانی می‌کنه، این رو استفاده کن: @supports CSS داخل قوانین. اگر پشتیبانی نمی‌کنه، این رو استفاده کن: @supports استایل‌های کلاس .container خارج از قوانین:

/* اگر مرورگر از display: grid پشتیبانی نمی‌کنه، این CSS رو استفاده کن */
.container {
  display: table;
  width: 90%;
  background-color: #2196F3;
  padding: 10px;
}
/* اگر مرورگر از display: grid پشتیبانی می‌کنه، این CSS رو استفاده کن */
@supports (display: grid) {
  .container {
    display: grid;
    grid: auto;
    grid-gap: 10px;
    background-color: #2196F3;
    padding: 10px;
  }
}

آزمایش کنید

قوانین CSS

@supports (supports-condition) {
  /* اگر شرط درست باشه، این CSS رو استفاده کن */
}

مقدار خاصیت

مقدار توضیح
supports-condition

شرایط رو با استفاده از قوانین نام-مقدار (property: value) یا قوانین function() نشان می‌ده.

شرایط می‌تونن با and، or یا not ترکیب بشن.

selector()

این یک قوانین function() است. بررسی می‌کنه که آیا مرورگر از قوانین انتخابگر مشخص پشتیبانی می‌کنه یا نه.

مثلاً @supports selector(h2 > p) اگر مرورگر از انتخابگرهای ترکیبی پشتیبانی می‌کنه، true رو برمی‌گردونه و از CSS استایل استفاده می‌کنه.

font-tech()

این یک قوانین function() است. بررسی می‌کنه که آیا مرورگر از فناوری فونت مشخص پشتیبانی می‌کنه یا نه.

مثلاً @supports font-tech(color-svg) اگر مرورگر از جدول‌های چند رنگ SVG پشتیبانی می‌کنه، true رو برمی‌گردونه و از CSS استایل استفاده می‌کنه.

font-format()

این یک قوانین function() است. بررسی می‌کنه که آیا مرورگر از فرمت فونت مشخص پشتیبانی می‌کنه یا نه.

مثلاً @supports font-format(woff) اگر مرورگر از WOFF 1.0 پشتیبانی می‌کنه، true رو برمی‌گردونه و از CSS استایل استفاده می‌کنه.

پشتیبانی مرورگر

تبلویغات میزانی شمارا نشون می‌ده، نسخه‌ی اولیه‌ی مرورگر که این @ قوانین رو پشتیبانی می‌کنه.

@ 规则 Chrome Edge Firefox Safari Opera
@supports 28 12 22 9 12.1
font-format() 108 108 106 17 94
font-tech() 108 108 106 17 94
selector() 83 83 69 14.1 69