рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░-рд╕рдорд░реНрдерд┐рдд рд╕рдорд░реНрдерди рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ (
рдЕрдХреНрд╕рд░ рд╡реЗ рдПрдХ рдЕрдиреНрдп рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рдкреГрд╖реНрда рджреЗрдЦ рд░рд╣рд╛ рд╣реИ - рд▓рдЧрднрдЧред ), рд▓реЗрдХрд┐рди, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдРрд╕рд╛ рдЪреЗрдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХреЗрд╡рд▓ 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
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдИ рдЬрд╛рдВрдЪреЗрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ:
@supports (display: -webkit-flex) or (display: -moz-flex) or (display: flex) { } @supports (display: flex) and (-webkit-appearance: caret) { }
рдпрджрд┐ рдЖрдкрдХреЛ рдХрдИ рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ, рдЬреИрд╕рд╛ рдХрд┐ рдХрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ, рдЖрдк рдХреЛрд╖реНрдардХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
@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-featurequerieshttp://dev.w3.org/csswg/css-conditional/#at-supportsрдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдЯреНрд╡рд┐рдЯрд░Habr рдкрд░ flexbox рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ