рдЕрдЪреНрдЫрд╛ рд╕реАрдПрд╕рдПрд╕ рд▓реЗрдЖрдЙрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡реЗрдм рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдореМрдЬреВрдж рд╕рднреА рдЪреАрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдЬрд╝ рдЕрд╕рд╛рдЗрди рдХрд░рдирд╛ рдЬрд╝рд░реВрд░реА рд╣реИ. рд╕рд╛рдЗрдЬрд╝ рдХреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдпреВрдирд┐рдЯ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдХреЗ, рд╕рд╛рдЗрдЬрд╝ рдХреА рдЬрд╛рдирдХрд╛рд░реА рджреЗрдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рд╣рдореЗрд╢рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд░рд╣рд╛ рд╣реИ. рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рдПрд▓рд┐рдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП 50% рдЬрдЧрд╣ рдФрд░ 10 рдкрд┐рдХреНрд╕рд▓ рдХреА рддрдп рдЬрдЧрд╣ рдХреЛ рд░рд┐рдЬрд╝рд░реНрд╡ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛. calc()
рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдХреЗ, рдРрд╕рд╛ рдЕрднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ. рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓, рд▓рдВрдмрд╛рдИ рдпрд╛ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрд┐рд╕реА рднреА рдЬрдЧрд╣ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ. рдЗрд╕рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдЪреАрдЬрд╝реЛрдВ рдХреА рдкреЛрдЬрд╝рд┐рд╢рди рддрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ. рд╕рд╛рде рд╣реА, rgb()
рдХрд▓рд░ рд╡реИрд▓реНрдпреВ рдореЗрдВ рднреА рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ. рдЗрд╕рд▓рд┐рдП, рд╕реНрдЯрд╛рдЗрд▓ рд╢реАрдЯ рдореЗрдВ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрдИ рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ.
calc() рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдХреЗ рдХреНрдпрд╛-рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?
calc()
рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓, рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рдореЗрдВ рд╕реАрдПрд╕рдПрд╕ рдХреА рд▓рдВрдмрд╛рдИ рдпрд╛ рд╕рдВрдЦреНрдпрд╛ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ.
рд▓реЗрдЖрдЙрдЯ рдХреЛ рдЬрд╝реНрдпрд╛рджрд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдореЗрдВ рджреЛ рдореБрдЦреНрдп рд╕реБрд╡рд┐рдзрд╛рдПрдВ рдорд┐рд▓рддреА рд╣реИрдВ:
- рдкреНрд░рддрд┐рд╢рдд рдФрд░ рдРрдмреНрд╕рд▓реВрдЯ рд╡реИрд▓реНрдпреВ рдХреЛ рдорд┐рд▓рд╛рдирд╛.
- рд╕рд╛рдЗрдЬрд╝ рдХреА рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдирд╛.
рдкреНрд░рддрд┐рд╢рдд рдХреЛ рдкреВрд░реА рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛рдирд╛
рдЖрдЗрдП, рдкреНрд░рддрд┐рд╢рдд рдХреЛ рд╕рдЯреАрдХ рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ рд╣реИрдВ. рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдЬрдЧрд╣ рдХреЗ 50% рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рд╕реЗ рдХреБрдЫ рдкрд┐рдХреНрд╕рд▓ рдХрд╛рдЯрдХрд░, рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдПрд▓рд┐рдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдирд╛ рд╣реИ. рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
#foo {
width: calc(50% - 100px);
}
<div id="foo">Always 100 pixels less than half the available area</div>
рдЕрдЧрд░ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдХрд╛ рд░рдВрдЧ рд╣рд░рд╛ рд╣реЛрддрд╛, рддреЛ рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛:
рдЕрдЧрд░ рдкреИрд░рдВрдЯ рдХреЗ рд╕рд╛рдЗрдЬрд╝ рдХреЛ рдЫреЛрдЯрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдРрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛:
рдЗрд╕рдХреА рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд╣рдореЗрд╢рд╛ рдкрддрд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреЙрдиреНрдЯреЗрдВрдЯ рдХрд╛ рджрд╛рдпрд╛рдВ рдХрд┐рдирд╛рд░рд╛, рдХреЙрдиреНрдЯреЗрдВрдЯ рдХреЗ рдмреАрдЪ рд╕реЗ 100 рдкрд┐рдХреНрд╕рд▓ рдмрд╛рдИрдВ рдУрд░ рд╣реЛрдЧрд╛. рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡реИрд▓реНрдпреВ рдЯрд╛рдЗрдк рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ, рдЖрдкрдХреЗ рд╡реЗрдм рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд╛рдЗрдЬрд╝ рдХреЗ рдбрд┐рд╡рд╛рдЗрд╕реЛрдВ рдкрд░ рд▓реЗрдЖрдЙрдЯ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рдХрдВрдЯреНрд░реЛрд▓ рдХреЗ рд╕рд╛рде рдореИрдиреЗрдЬ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓рддреА рд╣реИ.
рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдирд╛
рдПрдХ рдФрд░ рдЦрд╛рд╕ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╕рд╛рдЗрдЬрд╝ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЗрдЬрд╝рд░рдореЗрдВрдЯ рдХреА рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ. рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 'em' рдФрд░ 'px' рдпреВрдирд┐рдЯ рдХреЛ рдорд┐рд▓рд╛рдХрд░, рдореМрдЬреВрджрд╛ рдлрд╝реЙрдиреНрдЯ рд╕рд╛рдЗрдЬрд╝ рдХреЗ рд╣рд┐рд╕рд╛рдм рд╕реЗ рд╕рд╛рдЗрдЬрд╝ рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ.
#bar {
height: calc(10em + 3px);
}
рд╡реИрд▓реНрдпреВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдХреБрдЫ рдмреЗрд╣рддрд░реАрди рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдВ рдФрд░ рдпрд╣рд╛рдВ рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ.
рдЗрд╕реЗ рдЖреЫрдорд╛рдПрдВ
calc()
рдХреЗ рд╕рд╛рде +, -, * , рдФрд░ / рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдХреЗ, рд╡реИрд▓реНрдпреВ рдЬреЛрдбрд╝реА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рдШрдЯрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рдЧреБрдгрд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рдФрд░ рднрд╛рдЧ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ. calc()
рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓, рд╕реАрдПрд╕рдПрд╕ рдХреА рд▓рдВрдмрд╛рдИ рдпрд╛ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рддреМрд░ рдкрд░ рдХрд╣реАрдВ рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ. рд╣рдо рдЬрд▓реНрдж рд╣реА рдРрдВрдЧрд▓ рдФрд░ рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЗ рд▓рд┐рдП calc()
рдЬреЛрдбрд╝рдиреЗ рдкрд░ рднреА рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ. рд▓рдВрдмрд╛рдИ рдХреЗ рд▓рд┐рдП calc()
рдкреНрд░реЙрдкрд░реНрдЯреА, рдЕрдм Chrome 19 (рдбреЗрд╡рд▓рдкрд░ рдЪреИрдирд▓ рдХрд╛ рдмрд┐рд▓реНрдб) рдореЗрдВ -webkit-calc
рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдХреЗ рдЙрдкрд▓рдмреНрдз рд╣реИ. рдпрд╣ рдкреНрд░реЙрдкрд░реНрдЯреА, Firefox рдХреЗ 8рд╡реЗрдВ рд╡рд░реНрд╢рди рд╕реЗ -moz-calc
рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдХреЗ рдФрд░ Internet Explorer рдХреЗ 9рд╡реЗрдВ рд╡рд░реНрд╢рди рд╕реЗ рдмрд┐рдирд╛ рдкреНрд░реАрдлрд╝рд┐рдХреНрд╕ рдХреЗ рдЙрдкрд▓рдмреНрдз рд╣реИ. рдиреАрдЪреЗ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдХреЗ рд╣рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдЕрдиреБрднрд╡ рд░рд╣рд╛.