Treci la conținutul principal

Regula CSS @supports

Folosește regula @supports ca să întrebi browserul dacă suportă o anumită proprietate sau valoare CSS. Cu ea poți defini și stiluri de rezervă pentru o funcție nesuportată.

Astfel, stilurile se aplică doar atunci când browserul le poate gestiona.

Sintaxă de bază

styles.css
@supports (property: value) {
  /* CSS rules to apply if condition is true */
}

Exemplu: Folosirea @supports cu grid și flex

Stilul de rezervă se obține combinând @supports cu CSS obișnuit.

Variantă de rezervă Flex

Un browser care suportă display: flex aplică CSS-ul din interiorul regulii @supports. Orice alt browser folosește în schimb clasa .container scrisă în afara ei.

Prompt
Creați o pagină care folosește @supports pentru a verifica dacă browserul suportă display: flex. Dacă este suportat, stilizați un .container cu display: flex. În afara regulii @supports, oferiți o variantă de rezervă folosind float: left și width: 100% pentru .container. Adăugați câteva elemente copil în interiorul containerului pentru a demonstra aspectul.
Rezultat: pagină HTML completă

Variantă de rezervă Grid

Aici testul este display: grid. Când reușește, se aplică CSS-ul din interiorul regulii @supports, iar când eșuează, clasa .container din afara acelei reguli servește drept variantă de rezervă.

Prompt
Creați o pagină care folosește @supports pentru a verifica dacă browserul suportă display: grid. Dacă este suportat, stilizați un .container cu display: grid, grid: auto, grid-gap: 10px, background-color: #2196F3, și padding: 10px. În afara regulii @supports, oferiți o variantă de rezervă cu display: table, width: 90%, aceeași culoare de fundal și același padding. Adăugați câteva elemente copil pentru a arăta aspectul.
Rezultat: pagină HTML completă

Negarea cu not

Ca să aplici stiluri doar atunci când o funcție nu este suportată, scrie not în condiție.

Exemplu

styles.css
@supports not (display: grid) {
  .warning {
    background-color: pink;
    padding: 10px;
    border: 1px solid red;
  }
}

Combinarea condițiilor

O singură regulă @supports poate conține mai multe condiții, unite cu and, or și not.

Notă: Browserele mai vechi au nevoie de stiluri de rezervă, așa că furnizează-le întotdeauna în afara @supports.

Exemplu

styles.css
@supports (display: grid) and (gap: 10px) {
  .container {
    display: grid;
    gap: 10px;
  }
}

Referință CSS

Dacă un browser suportă o funcție CSS se testează cu regula @supports.