рд╣рдо рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВ data-*
ред рдпреЗ рдРрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╣реИрдВ, рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдирдХ HTML рддрддреНрд╡реЛрдВ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░рд┐рдпреЛрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рд╕реАрдПрд╕рдПрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рдирдХрд╛рд░реА
HTML рддрддреНрд╡реЛрдВ рдореЗрдВ рдРрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рд╕рд╣рд╛рдпрдХ рддрдХрдиреАрдХреЛрдВ рдХреЛ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╕реЗ рд▓реЗрдХрд░ рд╕реНрдЯрд╛рдЗрд▓рд┐рдВрдЧ рддрддреНрд╡реЛрдВ рддрдХред
<div class="names" role="region" aria-label="Names"></div>
рдЕрдкрдиреА рдЦреБрдж рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдпрд╛ рдЙрди рддрд░реАрдХреЛрдВ рд╕реЗ рдореМрдЬреВрджрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рдЬрд┐рдирдХреЗ рд▓рд┐рдП рд╡реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВред
<div highlight="true"></div>
<div width="large">
рдпрд╣ рдХрдИ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдЦрд░рд╛рдм рд╣реИред HTML рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ рдпрджреНрдпрдкрд┐ рдЗрд╕рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдЧрд░реНрдо рднрд╛рд╡рдирд╛ рд╕реЗ рд╡рдВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рд╡реИрдз HTML рдХреЛрдб рдмрдирд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЦреНрдп рдХрд╛рд░рдг рдЖрдкрдХреЛ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ HTML рдПрдХ рдРрд╕реА рднрд╛рд╖рд╛ рд╣реИ рдЬреЛ рд▓рдЧрд╛рддрд╛рд░ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣реА рд╣реИред рдирддреАрдЬрддрди, рдЕрдЧрд░ рдЖрдЬ рднрд╛рд╖рд╛ рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛редрд╕рдЪ рд╣реИ, рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдРрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреА рдЕрдкрдиреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдирд╛рдо рдПрдХ рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ data-
ред рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреА рдЬрд╝рд░реВрд░рдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредрд╡рд╛рдХреНрдп - рд╡рд┐рдиреНрдпрд╛рд╕
рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА HTML рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдмрдирд╛рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдбреЗрдЯрд╛ рд▓рд┐рдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЕрддреНрдпрдВрдд рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрд╣, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рд╕рдВрднрд╡ рд╣реИ data-*
ред рдпрд╣ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рдРрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ:
<div data-foo></div>
<div data-size="large"></div>
<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-*
рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЕрдиреНрдп рдЧреБрдгреЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреА рддрд░рд╣, рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ редgetAtribute
setAttribute
//
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);
console.log(data.job);
рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ- * рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ
рдпрд╣рд╛рдБ рд╡рд┐рдЪрд╛рд░ data-*
HTML рдХреЛрдб рдореЗрдВ рдбреЗрдЯрд╛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ рдЬреЛ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрдЗрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЗ рдЖрдпреЛрдЬрди рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдмрдЯрди рд╣реИ Like
:<button data-id="435432343">Like</button>
рдЗрд╕ рдмрдЯрди рдореЗрдВ рдПрдХ рдХреНрд▓рд┐рдХ рд╣реИрдВрдбрд▓рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдПрдХ AJAX рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИред рд╣реИрдВрдбрд▓рд░, рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдЫ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕рд░реНрд╡рд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкрд╕рдВрдж рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред рд╣реИрдВрдбрд▓рд░ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рд╡рд┐рд╢реЗрд╖ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рд▓реЗрддрд╛ рд╣реИ data-*
редрд╕рд╛рд░рд╛рдВрд╢
рдпрд╣рд╛рдВ , рдпрд╣рд╛рдВ рдФрд░ рдпрд╣рд╛рдВ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рдорд╛рдирдХ рд╣реИрдВ data-*
ред рдпрд╣рд╛рдБ Caniuse рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░, рдЖрдк рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП data-*
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВ ред рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдиреЗ рдЖрдкрдХреЛ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рднреЛрдЬрди рджрд┐рдпрд╛ рд╣реИредрдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдЖрдк рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ- * HTML рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ?