рдирдИ рд╕реАрдПрд╕рдПрд╕ @supports рдирд┐рд░реНрджреЗрд╢

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░-рд╕рдорд░реНрдерд┐рдд рд╕рдорд░реНрдерди рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ ( рдЕрдХреНрд╕рд░ рд╡реЗ рдПрдХ рдЕрдиреНрдп рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рдкреГрд╖реНрда рджреЗрдЦ рд░рд╣рд╛ рд╣реИ - рд▓рдЧрднрдЧред ), рд▓реЗрдХрд┐рди, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдРрд╕рд╛ рдЪреЗрдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХреЗрд╡рд▓ CSS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ , рдХреНрд░реЛрдо, рдФрд░ рдУрдкреЗрд░рд╛ рдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ @supports рдФрд░ CSS.supports (рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ) рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рд╕реАрдПрд╕рдПрд╕ рд╕рдорд░реНрдерди рдХреА рдШреЛрд╖рдгрд╛ рдХреА, рдЬреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реАрдПрд╕рдПрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдЪрд▓реЛ рдЙрдиреНрд╣реЗрдВ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рджреЗрдЦреЛ!

рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ
(рдпрджрд┐ рд╢рд┐рд▓рд╛рд▓реЗрдЦ рд╣рд░рд╛ рд╣реИ, рддреЛ рдЖрдкрдХрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ @supports рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдпрджрд┐ рдпрд╣ рд▓рд╛рд▓ рд╣реИ, рддреЛ рдирд╣реАрдВред рдЖрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╕рдВрджреЗрд╢ рдХреЛ рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред)

рд╕реАрдПрд╕рдПрд╕ @supports


@supports рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ @supports @media рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИ:
 @supports(prop:value) { /*  */ } 

@supports рдирд┐рд░реНрджреЗрд╢ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рд╕рд╛рдзрд╛рд░рдг рд╕рдВрдкрддреНрддрд┐ рдХреА рдЬрд╛рдВрдЪ

 @supports (display: flex) { div { display: flex; } } 

рдпрд╣ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИред

рдХреАрд╡рд░реНрдб рдирд╣реАрдВ

@supports рдХрд┐рд╕реА рднреА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреА рдХрдореА рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ not рд╢рдмреНрдж рдХреЗ рд╕рд╛рде рд░рдЦрд╛:
 @supports not (display: flex) { div { float: left; } /*    */ } 


рдПрдХрд╛рдзрд┐рдХ рдЪреЗрдХ рдФрд░ рд╢рд░реНрддреЗрдВ

рд╢реНрд░реГрдВрдЦрд▓рд╛ рдФрд░ or рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдИ рдЬрд╛рдВрдЪреЗрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ:
 /* or */ @supports (display: -webkit-flex) or (display: -moz-flex) or (display: flex) { /*      */ } /* and */ @supports (display: flex) and (-webkit-appearance: caret) { /*     */ } 

рдпрджрд┐ рдЖрдкрдХреЛ рдХрдИ рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ, рдЬреИрд╕рд╛ рдХрд┐ рдХрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ, рдЖрдк рдХреЛрд╖реНрдардХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 /* and and or */ @supports ((display: -webkit-flex) or (display: -moz-flex) or (display: flex)) and (-webkit-appearance: caret) { /*   */ } 

@supports рд╢рд░реНрддреЛрдВ @supports рд╕рд┐рдВрдЯреИрдХреНрд╕ @media рдХреНрд╡реЗрд░реАрдЬрд╝ рдХреЗ рд╕рдорд╛рди рд╣реИред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ CSS.supports


@supports рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдордХрдХреНрд╖, window.CSS.supports рд╡рд┐рдзрд┐ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдкрд╣рд▓реЗ рдореЗрдВ рджреЛ рддрд░реНрдХ рдкрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ - рд╕рдВрдкрддреНрддрд┐ рдФрд░ рдЙрд╕рдХреЗ рдореВрд▓реНрдп:
 var supportsFlex = CSS.supports("display", "flex"); 

рджреВрд╕рд░реЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкреВрд░реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:
 var supportsFlexAndAppearance = CSS.supports("(display: flex) and (-webkit-appearance: caret)"); 

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдирд╛рд▓реЙрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕ рддрдХрдиреАрдХ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдорд░реНрдерди рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдУрдкреЗрд░рд╛ рдПрдХ рдЕрд▓рдЧ рд╡рд┐рдзрд┐ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХреЛрдб рдХреЛ рдереЛрдбрд╝рд╛ рдмрдврд╝рд╛рддрд╛ рд╣реИ:
 var supportsCSS = !!((window.CSS && window.CSS.supports) || window.supportsCSS || false); 


@Supports рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛


рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, @supports рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╢реИрд▓рд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмреИрдХрдЕрдк рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╡рд╛рдВрдЫрд┐рдд рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рд╕рдорд░реНрдерди рд╣реЛрдиреЗ рдкрд░ рдЙрдиреНрд╣реЗрдВ рджреВрд╕рд░реЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИред @supports рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдХрд╛рд░рдг рддрддреНрд╡реЛрдВ рдХреЗ рд╕реНрдерд╛рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╣реИред рдХреБрдЫ рдирдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдлреНрд▓реЗрдХреНрд╕рдмреЙрдХреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЕрдиреНрдп рдкрд┐рдЫрдбрд╝ рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
 section { float: left; } @supports (display: -webkit-flex) or (display: -moz-flex) or (display: flex) { section { display: -webkit-flex; display: -moz-flex; display: flex; float: none; } } 

@supports рд▓рд┐рдП рдЕрдиреНрдп рдЕрдЪреНрдЫреЗ рдЙрдкрдпреЛрдЧ рдХреЗ @supports рдЙрджрд╛рд╣рд░рдг рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдЗрд╕ рдирдИ рддрдХрдиреАрдХ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рдмрд┐рддрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдПрдВрдЧреЗред

@ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ

рдпрджрд┐ рдЖрдк @supports рдЬреИрд╕реА рдирдИ рддрдХрдиреАрдХреЛрдВ рдХреЛ рдЖрдЬрд╝рдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреБрдЫ рд╕рдордп рдХреИрдирд░реА, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдирд╛рдЗрдЯрд▓реА рдпрд╛ рдУрдкреЗрд░рд╛ рдиреЗрдХреНрд╕реНрдЯ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред Opera 12.1, WebKit @supports , рдФрд░ Firefox @supports рд╕рднреА @supports рд╕рдорд░реНрдерди @supports ред рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг [layout.CSS.supports-rule.enabled] . [layout.CSS.supports-rule.enabled] рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЙрдЪрд┐рдд рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред

@supports CSS рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдкреЗрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрд╡рд╛рдЧрдд рдпреЛрдЧреНрдп рд╣реИред рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрдХрдиреАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдорд░реНрдерди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ рд╣реИ, рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд╣реИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ @supports рдПрдХ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рдЙрдкрдпреБрдХреНрдд рддрд░реАрдХрд╛ рд╣реИред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд▓реЗ рдХреБрдЫ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рд╣рдо @supports рдХреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдФрд░ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдмрдврд╝рд╛рддреЗ рд╣реБрдП @supports рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╡реГрджреНрдзрд┐ рджреЗрдЦреЗрдВрдЧреЗред

рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ


http://caniuse.com/css-featurequeries
http://dev.w3.org/csswg/css-conditional/#at-supports
рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдЯреНрд╡рд┐рдЯрд░
Habr рдкрд░ flexbox рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ

Source: https://habr.com/ru/post/In178021/


All Articles