рд╢реБрджреНрдз рд╕реАрдПрд╕рдПрд╕: рд▓рд┐рдВрдХ рд░рдВрдЧреЛрдВ рдХреЛ рдПрдирд┐рдореЗрдЯ рдХрд░рдиреЗ рдХреЗ 4 рддрд░реАрдХреЗ

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


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

рд╡рд┐рдзрд┐ # 1: рдкреГрд╖реНрдарднреВрдорд┐-рдХреНрд▓рд┐рдк рдХрд╛ рдЙрдкрдпреЛрдЧ: рдкрд╛рда


рдЗрд╕ рд▓реЗрдЦрди рдХреЗ рд╕рдордп, рдкреГрд╖реНрдарднреВрдорд┐-рдХреНрд▓рд┐рдк: рдкрд╛рда рд╕рдВрдкрддреНрддрд┐ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╣реИред рдпрд╣ рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ 11 рдореЗрдВ рдФрд░ рдиреАрдЪреЗ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред рдЗрд╕ рд╡рд┐рдзрд┐ рддрдерд╛рдХрдерд┐рдд "рдмрдирд╛рдиреЗ рд╣реЛрддреЗ рд╣реИрдВ рдиреЙрдХрдЖрдЙрдЯ рдкрд╛рда рдПрдХ рд╕рд╛рде" (рдкрд╛рда рдХрд┐ рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рддрд╣ рдореЗрдВ рдмрд╛рд╣рд░ рдХрдЯ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рд╕реЗ рдкрд╛рд░рджрд░реНрд╢реА рд╣реИ) рддреЗрдЬ рдврд╛рд▓ ред HTML рдорд╛рд░реНрдХрдЕрдк рдореЗрдВ рдПрдХ рдПрдХрд▓ рддрддреНрд╡ <a>рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд╣рд╛рдЗрдкрд░рд▓рд┐рдВрдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред

<a href="#">Link Hover</a>

рдЪрд▓рд┐рдП рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рд╕реНрдЯрд╛рдЗрд▓ рдмрдирд╛рдХрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЙрдкрдпреЛрдЧ overflow: hiddenрдХрд░рдиреЗ рд╕реЗ рддрдереНрдп рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдЬрдм рдЖрдк рд▓рд┐рдВрдХ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рддрддреНрд╡ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╕рдм рдХреБрдЫ рдХрд╛рдЯ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

a {
  position: relative;
  display: inline-block;
  font-size: 2em;
  font-weight: 800;
  color: royalblue;
  overflow: hidden;
}

рд╣рдореЗрдВ рд▓рд┐рдВрдХ рдХреЗ рд╢реБрд░реВ рдФрд░ рдЕрдВрдд рд░рдВрдЧреЛрдВ рдХреЗ рд▓рд┐рдП 50% рдХреЗ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдПрдХ рддреЗрдЬ рд░реИрдЦрд┐рдХ рдврд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

a {
  /*  ,    */
  background: linear-gradient(to right, midnightblue, midnightblue 50%, royalblue 50%);
}

background-clipрдврд╛рд▓ рдХреЛ рдЯреНрд░рд┐рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ ред textрдкрд╛рда рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдорд╛рди рджреЗрдВ ред рд╣рдо background-sizeрдФрд░ рдХреЗ рдЧреБрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ background-positionред рдпрд╣ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░рдВрдЧ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

a {
  /*  ,    */
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-size: 200% 100%;
  background-position: 100%;
}

рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╕реНрдЯрд╛рдЗрд▓ рдФрд░ рд╕реНрдЯрд╛рдЗрд▓ transitionрд╣рд╛рдЗрдкрд░рд▓рд┐рдВрдХ рдЫрджреНрдо рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реАрдПрд╕рдПрд╕ рд╕рдВрдкрддреНрддрд┐ рдЬреЛрдбрд╝реЗрдВ :hoverред рдирдП рд░рдВрдЧ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдХреЛ рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдм рдЖрдк рд▓рд┐рдВрдХ рдкрд░ рд╣реЛрд╡рд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ background-positionред

a {
  /*  ,    */
  transition: background-position 275ms ease;
}
a:hover {
  background-position: 0 100%;
}

рдпрд╣рд╛рдВ CodePen рдкрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рддрдХрдиреАрдХ рдЖрдкрдХреЛ рд╡рд╛рдВрдЫрд┐рдд рдкреНрд░рднрд╛рд╡, рд╕рдлрд╛рд░реА рдФрд░ рдХреНрд░реЛрдо рдЯреНрд░рд┐рдо рдХрд┐рдП рдЧрдП рдкрд╛рда рдФрд░ рдЫрд╛рдпрд╛ рддрддреНрд╡реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдкрд╛рда рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛, рдЬреИрд╕реЗ рдХрд┐ рд╕реАрдПрд╕рдПрд╕ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рда рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░рдирд╛ text-decoration, рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдЖрдк рд▓рд┐рдВрдХ рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЖрдк рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рд░реЗрдЦрд╛рдВрдХрди ред


рд╡рд┐рдзрд┐ # 2: рдЪреМрдбрд╝рд╛рдИ / рдКрдВрдЪрд╛рдИ рд▓рдЧрд╛рдиреЗ


рдпрд╣ рд╡рд┐рдзрд┐ рдбреЗрдЯрд╛ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ- * рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬрд┐рд╕рдореЗрдВ рдЯреИрдЧ рдХреЗ рд╕рдорд╛рди рдкрд╛рда рд╣реИ <a>ред рдпрд╣рд╛рдВ рдЖрдк рд╕рдВрдкрддреНрддрд┐ рдкреНрд░рдмрдВрдзрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ width(рд▓рд┐рдВрдХ рдХреЛ рд░рдВрдЧ рд╕реЗ рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ рдпрд╛ рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдпрд╛ рд╕рдВрдкрддреНрддрд┐ height(рдКрдкрд░ рд╕реЗ рдиреАрдЪреЗ рдпрд╛ рдиреАрдЪреЗ рд╕реЗ рдКрдкрд░ рддрдХ рдкреНрд░рднрд╛рд╡ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдкрд░ рдПрдХ рдкреНрд░рднрд╛рд╡ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ width, рдЬреЛ, рдЬрдм рдЖрдк рдПрдХ рд▓рд┐рдВрдХ рдкрд░ рдорд╛рдЙрд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ 0 рд╕реЗ 100% рддрдХ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдорд╛рд░реНрдХрдЕрдк рд╣реИ:

<a href="#" data-content="Link Hover">Link Hover</a>

рд╕реАрдПрд╕рдПрд╕ рдкреГрд╖реНрдарднреВрдорд┐ рд╕рдВрдкрддреНрддрд┐ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдХреЗ рд╕рдорд╛рди рд╣реИред рдпрд╣рд╛рдВ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдВрдкрддреНрддрд┐ рдареАрдХ рдХрд╛рдо рдХрд░реЗрдЧреА text-decoration:

a {
  position: relative;
  display: inline-block;
  font-size: 2em;
  color: royalblue;
  font-weight: 800;
  text-decoration: underline;
  overflow: hidden;
}

рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рд╣рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реЗ рдкрд╛рда рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ data-contentред рдпрд╣ рдкрд╛рда рдЯреИрдЧ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ <a>ред рд╣рдо рдпрд╣рд╛рдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЫреЛрдЯреА рдЪрд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реЗ рдкрд╛рда рдХреА рдирдХрд▓ рдХрд░рдирд╛ рдФрд░ рдПрдХ рд▓рд┐рдВрдХ рдХреЗ рдЫрджреНрдо рддрддреНрд╡ рдХреА attr()рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдирд╛ рд╣реИ редcontent::before

a::before {
  position: absolute;
  content: attr(data-content); /*    */
  top: 0;
  left: 0;
  color: midnightblue;
  text-decoration: underline;
  overflow: hidden;
  transition: width 275ms ease;
}

рдкрд╛рда рдХреЛ рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдирд╣реАрдВ рдХреВрджрдиреЗ рдХреЗ рд▓рд┐рдП, рдЫрджреНрдо рддрддреНрд╡ рдкрд░ рдПрдХ рд╢реИрд▓реА рд▓рд╛рдЧреВ рдХреА рдЬрд╛рдПрдЧреА white-space: nowrapред рд▓рд┐рдВрдХ рдХрд╛ рд░рдВрдЧ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, colorрдЫрджреНрдо рддрддреНрд╡ рдХреЗ рд╕реАрдПрд╕рдПрд╕ рдЧреБрдг рдХрд╛ рдорд╛рди рд╕реЗрдЯ рдХрд░реЗрдВ ::beforeрдФрд░ рдЗрд╕реЗ рдРрд╕рд╛ рдХрд░реЗрдВ рдХрд┐ рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдореВрд▓реНрдп width0:

a::before {
  /*  ,    */
  width: 0;
  white-space: nowrap;
}

рдорд╛рдЙрд╕ рд▓рд┐рдВрдХ рдкрд░ рд╣реЛрд╡рд░ рдХрд░рдиреЗ рдкрд░ рдкреНрд░рднрд╛рд╡ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП widthрдЫрджреНрдо рддрддреНрд╡ рдХрд╛ рдорд╛рди ::before100% рддрдХ рдмрдврд╝рд╛рдПрдБ :

a:hover::before {
  width: 100%;
}

рдпрд╣рд╛рдВ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдо рддрддреНрд╡ рдХреЗ рдЧреБрдгреЛрдВ рдкрд░ рдХрд╛рд░реНрдп рдХрд░ рд░рд╣реЗ рд╣реИрдВ widthрдФрд░ heightрд╣рдореЗрдВ рдЬреЛ рдЪрд╛рд╣рд┐рдП, рд╡рд╣ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╡рд┐рдзрд┐ рдЗрд╕рдХреА рдХрдо рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИ ред 60 рдлреНрд░реЗрдо рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдкрд░ рдПрдХ рдЪрд┐рдХрдиреА рд░рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рдЧреБрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ transformрдпрд╛ opacityрд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ text-decorationрдЖрдкрдХреЛ рдПрдирд┐рдореЗрдЯреЗрдб рд▓рд┐рдВрдХ рдореЗрдВ рдкрд╛рда рдкрд░ рдЬреЛрд░ рджреЗрдиреЗ рдХреА рд╡рд┐рднрд┐рдиреНрди рд╢реИрд▓рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛ рдЗрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреАрд╕рд░реА рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЕрдм рд╣рдо рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред рдпрд╣ рдХреНрд▓рд┐рдк-рдкрд╛рде рдХреА рд╕реАрдПрд╕рдПрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ ред



рд╡рд┐рдзрд┐ 3: рдХреНрд▓рд┐рдк-рдкрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░


рдпрд╣рд╛рдВ рд╣рдо CSS рд╕рдВрдкрддреНрддрд┐ clip-pathрдФрд░ рдмрд╣реБрднреБрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ , рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдпрддред рдЖрдпрдд рдореЗрдВ рдЪрд╛рд░ рдХреЛрдиреЗ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрдм рдЖрдк рд▓рд┐рдВрдХ рдкрд░ рд╣реЛрд╡рд░ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЗрд╕рдХреЗ рджреЛ рдкрдХреНрд╖реЛрдВ рдХреА рд▓рдВрдмрд╛рдИ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред рдЖрдВрдХрдбрд╝рд╛ рдлреИрд▓рддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдПрдХ рдкрдХреНрд╖ рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ рдЪрд▓рддрд╛ рд╣реИред


рдпрд╣ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рдорд╛рди рдорд╛рд░реНрдХрдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:

<a href="#" data-content="Link Hover">Link Hover</a>

рд╣рдо, рдлрд┐рд░ рд╕реЗ, рдЫрджреНрдо рддрддреНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ ::beforeред рд▓реЗрдХрд┐рди рд╕реАрдПрд╕рдПрд╕ рдпрд╣рд╛рдБ рдЕрд▓рдЧ рд╣реИ:

a::before {
  position: absolute;
  content: attr(data-content);
  color: midnightblue;
  text-decoration: underline;
  clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
  transition: clip-path 275ms ease;
}

рдкрд┐рдЫрд▓реА рдкрджреНрдзрддрд┐ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣рд╛рдВ рд╕рдВрдкрддреНрддрд┐ text-decoration: underlineрдХреЛ рдЫрджреНрдо рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП ::beforeред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ рд░рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рди рдХреЗрд╡рд▓ рд▓рд┐рдВрдХ рдХреЗ рдкрд╛рда рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗ, рдмрд▓реНрдХрд┐ рд▓рд┐рдВрдХ рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд░реЗрдЦрд╛ рднреА рд╣реЛред рдЕрдм рдЖрдЗрдП рд╕рдВрдкрддреНрддрд┐ рдХреЗ CSS-code рдХреЛ рджреЗрдЦреЗрдВ clip-path:

clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);

рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдмрд╣реБрднреБрдЬ рдХреЗ рдХреЛрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ clip-pathрдПрдХ рдкреНрд░рддрд┐рд╢рдд рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рдЬрд╛рддреА рд╣реИ, рд╡реЗ рдмрд╣реБрднреБрдЬ рдкрд░ рдЙрдирдХреЗ рд╕реНрдерд╛рди рдХреЗ рдЕрдиреБрд░реВрдк рдХреНрд░рдо рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

  • 0 0 = рдКрдкрд░реА рдмрд╛рдПрдБ рдХреЛрдиреЗ рдореЗрдВ
  • 0 0 = рдКрдкрд░реА рджрд╛рд╣рд┐рдирд╛ рдХреЛрдирд╛
  • 0 100% = рджрд╛рдпрд╛рдВ рдХреЛрдирд╛
  • 0 100% = рдиреАрдЪреЗ рдХрд╛ рдмрд╛рдпрд╛рдБ рдХреЛрдирд╛

рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдХреЗ рднрд░рдиреЗ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреА рджрд┐рд╢рд╛ рдХреЛ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдм рдЬрдм рд╣рдо рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдорд╛рдЙрд╕ рд▓рд┐рдВрдХ рдкрд░ рдордВрдбрд░рд╛рдиреЗ рдкрд░ рдпрд╣ рдЖрдВрдХрдбрд╝рд╛ рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ рдХреА рдУрд░ рдмрдврд╝ рд╕рдХрддрд╛ рд╣реИ:

a:hover::before {
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}

рдпрд╣рд╛рдВ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рд╕рдВрд╕реНрдХрд░рдг рд╣реИред рд▓рд┐рдВрдХ рд░рдВрдЧреЛрдВ рдХреЛ рдПрдирд┐рдореЗрдЯ рдХрд░рдиреЗ рдХреА рдпрд╣ рддрдХрдиреАрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╡рд┐рднрд┐рдиреНрди рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╕рдорд░реНрдерди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ clip-pathред рд╕реАрдПрд╕рдПрд╕ рд╕рдВрдХреНрд░рдордг рдХрд╛ clip-pathрдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдКрдВрдЪрд╛рдИ / рдЪреМрдбрд╝рд╛рдИ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рддрдереНрдп рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдмрд╣реБрдд рд╕рдВрд╕рд╛рдзрди-рдЧрд╣рди рдкреЗрдВрдЯ рдСрдкрд░реЗрд╢рди (рдбреНрд░рд╛рдЗрдВрдЧ) рдХрд░рддрд╛ рд╣реИред

рд╡рд┐рдзрд┐ # 4: рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░


рдпрд╣рд╛рдВ рдЙрдкрдпреЛрдЧ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдорд╛рд░реНрдХрдЕрдк рддрддреНрд╡ рдорд╛рд╕реНрдХрд┐рдВрдЧ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ <span>ред рдЪреВрдВрдХрд┐ рд╣рдо рддрддреНрд╡ рдореЗрдВ <span>рд▓рд┐рдВрдХ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ , рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕рд╛рдордЧреНрд░реА рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ aria-hidden="true"ред рдпрд╣ рд╕реНрдХреНрд░реАрди рдкрд╛рдардХреЛрдВ рд╕реЗ рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкрд╛рда рдХреЛ рдЫрд┐рдкрд╛рдПрдЧрд╛ред

рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд╛рда рдХреЛ рджреЛ рдмрд╛рд░ рдЖрд╡рд╛рдЬ рдирд╣реАрдВ рджреА рдЬрд╛рдПрдЧреА:

<a href="#"><span data-content="Link Hover" aria-hidden="true"></span>Link Hover</a>

рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рд╕реАрдПрд╕рдПрд╕ <span>рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХрд╛ рд╡рд┐рд╡рд░рдг рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдмрд╛рдИрдВ рдУрд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ:

span {
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
  transform: translateX(-100%);
  transition: transform 275ms ease;
}

рдЕрдм рдЖрдкрдХреЛ <span>рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рдЕрдиреБрд╕рд╛рд░, рддрддреНрд╡ рдХреА рдЧрддрд┐ рдХреЛ рджрд╛рдИрдВ рдУрд░ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ред


рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЫрджреНрдо ::beforeрддрддреНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ <span>ред рдФрд░, рдкрд╣рд▓реЗ рдХреА рддрд░рд╣, рд╣рдо рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓реЗрдВрдЧреЗ data-contentред рдЖрдЗрдП рд╣рдо рддрддреНрд╡ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ transform: translateX(100%), рдПрдХ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реБрдП , рдЗрд╕реЗ рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ Xред

span::before { 
  display: inline-block;
  content: attr(data-content);
  color: midnightblue;
  transform: translateX(100%);
  transition: transform 275ms ease;
  text-decoration: underline;
}

рддрддреНрд╡ рдХреЗ рд╕рд╛рде рдХреЗ рд░реВрдк <span>рдореЗрдВ, рдЫрджреНрдо рддрддреНрд╡ рдХреА рд╕реНрдерд┐рддрд┐ ::beforeрдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрдЯ рдХреА рдЬрд╛рдПрдЧреА transform: translateX(0):

a:hover span::before {
  transform: translateX(0);
}

рдпрд╣рд╛рдВ CodePen рдкрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕ рдкрджреНрдзрддрд┐ рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХреНрд░реЙрд╕-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдорд░реНрдерди рд╣реИ, рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ HTML рдФрд░ CSS рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдлрд┐рд░ рднреА, рд╕реАрдПрд╕рдПрд╕-рдЧреБрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ transform рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдиреБрдХрд╕рд╛рди рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛рддрд╛ рд╣реИ , рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рддрддреНрд╡реЛрдВ рдХреЗ рдкреБрдирд░реНрд╡рд┐рддрд░рдг рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдмрдирддрд╛ рд╣реИ, рдФрд░, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, 60 рдлреНрд░реЗрдо рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдореЗрдВ рдЪрд┐рдХрдиреА рд╕реАрдПрд╕рдПрд╕ рд╕рдВрдХреНрд░рдордг рдХреЗ рдЧрдарди рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред


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


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

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд▓рд┐рдВрдХ рдЪреЗрддрди рдХрд░рддреЗ рд╣реИрдВ?


All Articles