рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛- * HTML рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ

рд╣рдо рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВ data-*ред рдпреЗ рдРрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╣реИрдВ, рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдирдХ HTML рддрддреНрд╡реЛрдВ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░рд┐рдпреЛрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рд╕реАрдПрд╕рдПрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред



рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рдирдХрд╛рд░реА


HTML рддрддреНрд╡реЛрдВ рдореЗрдВ рдРрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рд╕рд╣рд╛рдпрдХ рддрдХрдиреАрдХреЛрдВ рдХреЛ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╕реЗ рд▓реЗрдХрд░ рд╕реНрдЯрд╛рдЗрд▓рд┐рдВрдЧ рддрддреНрд╡реЛрдВ рддрдХред

<!--  `class`      CSS,  `role`    -->
<div class="names" role="region" aria-label="Names"></div>

рдЕрдкрдиреА рдЦреБрдж рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдпрд╛ рдЙрди рддрд░реАрдХреЛрдВ рд╕реЗ рдореМрдЬреВрджрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рдЬрд┐рдирдХреЗ рд▓рд┐рдП рд╡реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВред

<!-- `highlight`   HTML--->
<div highlight="true"></div>

<!-- `large`      `width` -->
<div width="large">

рдпрд╣ рдХрдИ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдЦрд░рд╛рдм рд╣реИред HTML рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ рдпрджреНрдпрдкрд┐ рдЗрд╕рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдЧрд░реНрдо рднрд╛рд╡рдирд╛ рд╕реЗ рд╡рдВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рд╡реИрдз HTML рдХреЛрдб рдмрдирд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЦреНрдп рдХрд╛рд░рдг рдЖрдкрдХреЛ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ HTML рдПрдХ рдРрд╕реА рднрд╛рд╖рд╛ рд╣реИ рдЬреЛ рд▓рдЧрд╛рддрд╛рд░ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣реА рд╣реИред рдирддреАрдЬрддрди, рдЕрдЧрд░ рдЖрдЬ рднрд╛рд╖рд╛ рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛ред

рд╕рдЪ рд╣реИ, рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдРрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреА рдЕрдкрдиреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдирд╛рдо рдПрдХ рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ data-ред рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреА рдЬрд╝рд░реВрд░рдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╡рд╛рдХреНрдп - рд╡рд┐рдиреНрдпрд╛рд╕


рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА HTML рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдмрдирд╛рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдбреЗрдЯрд╛ рд▓рд┐рдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЕрддреНрдпрдВрдд рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрд╣, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рд╕рдВрднрд╡ рд╣реИ data-*ред рдпрд╣ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рдРрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ:

<!--      -->
<div data-foo></div>

<!-- ...     -->
<div data-size="large"></div>

<!--      HTML,    HTML-, , ,      -->
<li data-prefix="Careful with HTML in here."><li>

<!--   -      -->
<aside data-some-long-attribute-name><aside>

рдпреЗ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ, рдареАрдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╣рдореЗрд╢рд╛ рдПрдХ рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддреА data-рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдХреНрд╕рд░ рдЧреБрдг data-*рдпрд╛ рдбреЗрдЯрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдирд╛рдо рдмрдирд╛рддреЗ рд╕рдордп, рд╢рдмреНрдж рдкрд╣рд▓реЗ рдЖрддрд╛ рд╣реИ data, рдлрд┐рд░ рдбреИрд╢ ( -), рдФрд░ рдлрд┐рд░ рд╢реЗрд╖ рдирд╛рдо, рдбреЗрд╡рд▓рдкрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдореИрдВ рдбреЗрдЯрд╛ рдирд╛рдордХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?


рдпрд╣рд╛рдВ рдПрдХ рдирдореВрдирд╛ рдХреЛрдб рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдирд╛рдо рджреЗрддрд╛ рд╣реИ data:

<div data=""></div>

рдЗрд╕ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╢рд╛рдпрдж рдХрд┐рд╕реА рдХреЛ рдЪреЛрдЯ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛рдПрдЧреА, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдкрдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдо рдиреАрдЪреЗ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдбреЗрд╡рд▓рдкрд░, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЕрдкрдиреА рдЦреБрдж рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рдмрдирд╛рддрд╛ рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрдиреБрд╢рдВрд╕рд┐рдд рдирд╣реАрдВ рд╣реИред

рдЖрдкрдХреЛ рдбреЗрдЯрд╛- * рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП


рдРрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рдРрд╕реА рд╕рд╛рдордЧреНрд░реА рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╕рд╣рд╛рдпрдХ рддрдХрдиреАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реБрд▓рдн рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдХреБрдЫ рдбреЗрдЯрд╛ рдкреГрд╖реНрда рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗ, рдпрд╛ рд╕реНрдХреНрд░реАрди рд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реБрд▓рдн рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдпрд╣ рдХреЗрд╡рд▓ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ data-*ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рдирд┐рдпрдорд┐рдд HTML рдорд╛рд░реНрдХрдЕрдк рдореЗрдВ рднреА рджрд┐рдЦрд╛рдИ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред

<!--      ,     -->
<div data-name="Chris Coyier"></div>

<!--      ,       ,    ... -->
<div>
  <span class="visually-hidden">Chris Coyier</span>
</div>

рд╡реЗрдм рдкреЗрдЬ рдПрд▓рд┐рдореЗрдВрдЯреНрд╕ рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рд╕рд╛рдордЧреНрд░реА рджреА рдЧрдИ рд╣реИ ред

рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕реНрдЯрд╛рдЗрд▓рд┐рдВрдЧ рддрддреНрд╡- * рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ


CSS рдореЗрдВ, рдЖрдк рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рдЙрдирдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ HTML рддрддреНрд╡реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

/*      ,    */
[data-size="large"] {
  padding: 2rem;
  font-size: 125%;
}

/*    , ,  -  */
button[data-type="download"] { }
.card[data-pad="extra"] { }

рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред HTML / CSS рдореЗрдВ рд╕реНрдЯрд╛рдЗрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдпрджреНрдпрдкрд┐ рдХрдХреНрд╖рд╛рдПрдВ рдПрдХ рдЕрджреНрднреБрдд рдЙрдкрдХрд░рдг рд╣реИрдВ (рд╡реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдХреЗ рдФрд╕рдд рд╕реНрддрд░ рдореЗрдВ рднрд┐рдиреНрди рд╣реИрдВ, рддреЛ рдЖрдк рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ classList), рдПрдХ рддрддреНрд╡ рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╡рд░реНрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ (рдпрд╛рдиреА рддрддреНрд╡ рдореЗрдВ рд╡рд░реНрдЧ рдпрд╛ рддреЛ рд╢рд╛рдорд┐рд▓ рд╣реИ) , рдпрд╛ "рдмрдВрдж")ред рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп data-*, рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдкрд╛рд╕ рдХрдХреНрд╖рд╛рдУрдВ ("рдЪрд╛рд▓реВ / рдмрдВрдж") рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдореВрд▓реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рддрддреНрд╡реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдХрд┐ рдЙрдирдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдХреЗ рд╕рдорд╛рди рд╕реНрддрд░ рдкрд░ рд╣реЛрддреА рд╣реИред

/*  ,      */
[data-size] { }

/*  ,      */
[data-state="open"],
[aria-expanded="true"] { }

/*  " ",      ,    "3",    -   ,   3 -  "3.14" */
[data-version^="3"] { }
/*  ""   ,      -    */
[data-company*="google"] { }

рд╡рд┐рд╢реЗрд╖рддрд╛ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛


рд╡рд┐рд╢реЗрд╖рддрд╛ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИред рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдХреЛ рдЕрдХреНрд╕рд░ 4-рднрд╛рдЧ рдореВрд▓реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ:

  • рдЗрдирд▓рд╛рдЗрди рд╢реИрд▓реА
  • рдЖрдИрдбреА
  • рдХрдХреНрд╖рд╛рдПрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ
  • рдЯреИрдЧ

рдирддреАрдЬрддрди, рдпрджрд┐ рдЖрдк рдПрдХ рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдХреЗ рдореВрд▓реНрдп рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЪрдпрдирдХрд░реНрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдЯрд╛рдЗрд▓ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдпрд╣ рдРрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛ 0, 0, 1, 0ред 

рдФрд░ рдпрд╣рд╛рдБ рдПрдХ рдФрд░ рдЪрдпрдирдХрд░реНрддрд╛ рд╣реИ:

div.card[data-foo="bar"] { }

рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрд░реНрде рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ 0, 0, 2, 1ред рдпрд╣рд╛рдВ рд╕рдВрдЦреНрдпрд╛ 2рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╡рд░реНрдЧ ( .card) рдФрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рджреЛрдиреЛрдВ рд╣реИ ([data-foo="bar"]ред рдФрд░ 1рдпрд╣рд╛рдВ, рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рдЯреИрдЧ ( div) рд╣реИред

рдпрд╣рд╛рдБ, рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрди рддрд░реНрдХреЛрдВ рдХрд╛ рдПрдХ рд╕рдЪрд┐рддреНрд░ рд╕рдВрд╕реНрдХрд░рдгред


1 рдЯреИрдЧ, 1 рд╡рд░реНрдЧ рдФрд░ 1 рд╡рд┐рд╢реЗрд╖рддрд╛

рдЧреБрдг рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ (ID) рдХреАрддреБрд▓рдирд╛ рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдХрдо рд╣реИ, рд▓реЗрдХрд┐рди рдЯреИрдЧ (рддрддреНрд╡реЛрдВ) рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╣реИред рдЙрдирдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рд╡рд░реНрдЧреЛрдВ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред

рдХреЗрд╕ рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЧреБрдг рдорд╛рди


рдпрджрд┐ рдЖрдк рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЙрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рдореВрд▓реНрдп рдореЗрдВ рд▓реЛрдЕрд░рдХреЗрд╕ рдФрд░ рдЕрдкрд░рдХреЗрд╕ рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦреЗ рдЧрдП рддрд╛рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХреЗрд╕ рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЪрдпрдирдХрд░реНрддрд╛ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

/*     
<div data-state="open"></div>
<div data-state="Open"></div>
<div data-state="OPEN"></div>
<div data-state="oPeN"></div>
*/
[data-state="open" i] { }

рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЪрдпрдирдХрд░реНрддрд╛ рдореЗрдВ рдПрдХ рдЪрд░рд┐рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ iред

рдбреЗрдЯрд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ- * рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ


рд╕реАрдПрд╕рдПрд╕ рдЖрдкрдХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ data-*рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреГрд╖реНрда рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ ред
 
/* <div data-emoji=":-)"> */

[data-emoji]::before {
  content: attr(data-emoji); /*  ':-)' */
  margin-right: 5px;
}

рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг- * рд╢реИрд▓реА рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рддрд╛


рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ data-*рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ gridрдХрдВрдЯреЗрдирд░ рдореЗрдВ рдХрд┐рддрдиреЗ рдХреЙрд▓рдо рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП ред рдпрд╣рд╛рдБ HTML рдХреЛрдб рд╣реИ:

<div data-columns="2">
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</div>

<div data-columns="3">
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</div>

<div data-columns="4">
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</div>

рдпрд╣рд╛рдБ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╕реАрдПрд╕рдПрд╕ рд╣реИ:

[data-columns] {
  display: grid;
  grid-gap: 1rem;
  padding: 1rem;
  margin: 0 0 1rem 0;
}

[data-columns] > div {
  height: 100px;
  background: white;
}

[data-columns="2"] {
  background: #64B5F6;
  grid-template-columns: repeat(2, 1fr);
}

[data-columns="3"] {
  background: #9CCC65;
  grid-template-columns: repeat(3, 1fr);
}

[data-columns="4"] {
  background: #FFB74D;
  grid-template-columns: repeat(4, 1fr);
}

рдФрд░ рдпрд╣рд╛рдВ рдкрд░рд┐рдгрд╛рдореА рдкреГрд╖реНрда рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд╣реИред


рдЧреНрд░рд┐рдб рдХрдВрдЯреЗрдирд░, рдЬреЛ рдбреЗрдЯрд╛- * рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЖрдк

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рдеCodePen рдкрд░рдкреНрд░рдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред

рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛- * рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ


рдбреЗрдЯрд╛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП data-*рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЕрдиреНрдп рдЧреБрдгреЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреА рддрд░рд╣, рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ редgetAtributesetAttribute

//   
let value = el.getAttribute("data-state");

//   .

//  data-state   "collapsed"
el.setAttribute("data-state", "collapsed");

рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ data-*рдХрд╛ рдЕрдкрдирд╛ рд╡рд┐рд╢реЗрд╖ рдПрдкреАрдЖрдИ рд╣реИред рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╡рд╛рд▓рд╛ рдПрдХ рддрддреНрд╡ рд╣реИ data-*(рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ):

<span 
  data-info="123" 
  data-index="2" 
  data-prefix="Dr. "
  data-emoji-icon=":-)"
></span>

рдпрджрд┐ рдЗрд╕ рддрддреНрд╡ рдХрд╛ рдХреЛрдИ рд▓рд┐рдВрдХ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкрдврд╝ рдФрд░ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:

// 
span.dataset.info; // 123
span.dataset.index; // 2

// 
span.dataset.prefix = "Mr. ";
span.dataset.emojiIcon = ";-)";

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ JS рдХреЛрдб рдХреА рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ CamelCase рд╢реИрд▓реА рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╛рдо рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред рд╕рд┐рд╕реНрдЯрдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрдмрд╛рдм рд╢реИрд▓реА рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП HTML рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдирд╛рдо рдХреЛ рдКрдВрдЯ рд╢реИрд▓реА рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдирд╛рдореЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╡рд╣ рд╣реИ - рдпрд╣ рдореЗрдВ data-this-little-piggyрдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ dataThisLittlePiggyред

рдпрд╣ API, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдирд╣реАрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрд╕рд╛рди рдПрдкреАрдЖрдИ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИ classList , рдЬреИрд╕реЗ рд╕реНрдкрд╖реНрдЯ рддрд░реАрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди add, remove, toggleрдФрд░ replace, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдмреЗрд╣рддрд░ рдХреБрдЫ рдирд╣реАрдВ рд╕реЗ рд╣реИред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдЖрдк рддрддреНрд╡реЛрдВ рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

<img align="center" src="spaceship.png"
  data-ship-id="324" data-shields="72%"
  onclick="pewpew(this.dataset.shipId)">
</img>
<h2><font color="#3AC1EF">JSON-   data-*</font></h2>
<ul>
  <li data-person='
    {
      "name": "Chris Coyier",
      "job": "Web Person"
    }
  '></li>
</ul>

data-*JSON рдбреЗрдЯрд╛ рдХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдкрд░ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ ? рдЖрдЦрд┐рд░рдХрд╛рд░, рдпреЗ рдХреЗрд╡рд▓ рддрд╛рд░ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╡реИрдз JSON рдбреЗрдЯрд╛ (рджрд┐рдП рдЧрдП рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрди рдФрд░ рдЕрдзрд┐рдХ) рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡рд░реВрдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдпрд╣ рдбреЗрдЯрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реЗ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

const el = document.querySelector("li");

let json = el.dataset.person;
let data = JSON.parse(json);

console.log(data.name); // Chris Coyier
console.log(data.job); // Web Person

рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ- * рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ


рдпрд╣рд╛рдБ рд╡рд┐рдЪрд╛рд░ data-*HTML рдХреЛрдб рдореЗрдВ рдбреЗрдЯрд╛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ рдЬреЛ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЗ рдЖрдпреЛрдЬрди рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдмрдЯрди рд╣реИ Like:

<button data-id="435432343">Like</button>

рдЗрд╕ рдмрдЯрди рдореЗрдВ рдПрдХ рдХреНрд▓рд┐рдХ рд╣реИрдВрдбрд▓рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдПрдХ AJAX рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИред рд╣реИрдВрдбрд▓рд░, рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдЫ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕рд░реНрд╡рд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкрд╕рдВрдж рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред рд╣реИрдВрдбрд▓рд░ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рд╡рд┐рд╢реЗрд╖ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рд▓реЗрддрд╛ рд╣реИ data-*ред

рд╕рд╛рд░рд╛рдВрд╢


рдпрд╣рд╛рдВ , рдпрд╣рд╛рдВ рдФрд░ рдпрд╣рд╛рдВ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рдорд╛рдирдХ рд╣реИрдВ data-*ред рдпрд╣рд╛рдБ Caniuse рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░, рдЖрдк рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП data-*рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВ ред рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдиреЗ рдЖрдкрдХреЛ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рднреЛрдЬрди рджрд┐рдпрд╛ рд╣реИред

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдЖрдк рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ- * HTML рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ?


All Articles