рдЯреАрд╡реА рдкрд╣рд▓реЗ, рдЙрддреНрддрд░рджрд╛рдпреА рдЯрд╛рдЗрдкреЛрдЧреНрд░рд╛рдлреА рдпрд╛ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ рдирд╣реАрдВ рднреВрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП

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



рддреЛ рдЪрд▓реЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рддрдХрдиреАрдХ рдХреЛ рд╣реА рдпрд╛рдж рд░рдЦреЗрдВ:


html {
  font-size: minimumPixel + range * ((viewportWidth - minScreenWidth) / maxScreenWidth)
}

/* Example */

html {
  font-size: calc(14px + 10 * ((100vw - 769px) / 2048));
}

рдореИрдВрдиреЗ рдореБрдЦреНрдп рдереАрд╕рд┐рд╕ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рддреИрдпрд╛рд░ рдХреА:


рдЙрддреНрддрд░рджрд╛рдпреА рдЯрд╛рдЗрдкреЛрдЧреНрд░рд╛рдлреА рдФрд░ рдЙрд╕ рдкрд░ рдирд┐рд░реНрдорд┐рдд рдЙрддреНрддрд░рджрд╛рдпреА рд▓реЗрдЖрдЙрдЯ рдмрд╣реБрдд рд╕рдордп рдмрдЪрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдкрд░ рд╡рд┐рдХрд╛рд╕ рдХреЛ рд╕рд░рд▓ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред

, , :


  1. ?
  2. , ?
  3. ?
  4. .

.


. , , :


тАФ , , , .

, тАФ , , .

, .


.



, . , fullstack . , - . fullstack , , backend Python. , JQuery VueJs. . . , , MVP. SPA -. BI-. BI-, , backend-. (, , ), . , - .


- тАФ TV first. , . . . , . ? . , , , . . , . . , . . , .


MVP . , . CSS, JS . . - . , , , , .


, . , . .




, :


тАФ -, .

. .


? . , . , . -. . , . , . . . тАФ . . . . . rem. . :


:



:


  • . .
  • . , .

. . , , , . - .


, . тАФ google chrome. , , , .


:



. google.com . . google . . .


тАФ . . , , . .


- , . , . medium.com 2018 Pixels vs. Ems: Users DO Change Font Size, https://archive.org. , 3.08%. ? . , . - , .


? . , . , . ? . . , . , .


, -. Pixels vs. Relative Units in CSS: why itтАЩs still a big deal. - , - , .



. , , . - . .



, :


font-size: minimumPixel + range * ((viewportWidth - minScreenWidth) / maxScreenWidth)

Range . , 10 769px 2048px . ? . . , , minimumPixel + range. , 769px 2048px 14px 20px : 14px + 10 * ((2048 тАФ 769px) / 2048.


360px.


:


@media screen and (max-width: 360px) {
  html {
    font-size: calc(14px + 2 * ((100vw - 320px) / 360));
  }
}

30px 15.


/* Excessively large screens */
@media screen and (min-width: 2049px) {
  html {
    font-size: calc(30px + 15 * ((100vw - 2049px) / 4096));
  }
}

, . . . , , . .


. rem. , , . rem. , .


. , , , iphone 5. , . , . , .


, тАФ . . , . .


, :


/* Small mobile */
@media screen and (max-width: 360px) {
  html {
    font-size: calc(14px + 2 * ((100vw - 320px) / 360));
  }
}

@media screen and (min-width: 361px) and (max-width: 768px) {
  html {
    font-size: calc(16px + 2 * ((100vw - 361px) / 768));
  }
}

/* Laptop and Desktops screens */
@media screen and (min-width: 769px) and (max-width: 2048px) {
  html {
    font-size: calc(14px + 5 * ((100vw - 769px) / 2048));
  }
}

/* Excessively large screens */
@media screen and (min-width: 2049px) {
  html {
    font-size: calc(30px + 15 * ((100vw - 2049px) / 4096));
  }
}

тАФ , - . , .


. , тАФ rem :


@media screen and (min-width: 361px) and (max-width: 768px) {
  html {
    font-size: calc(1rem + 2 * ((100vw - 361px) / 768));
  }
}

. , , . , . , . , . 16px. , : People don't change the default 16px font size in their browser (You wish!). . , Opera Mini , Kindle 3, . 2016 . . . , - . , . .


, . . . . : . , , . , . , . . , . .


, . , . , .


- , .


:



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


All Articles