HTML рдФрд░ CSS рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд▓реЛрдб рдХрд┐рдП рдЧрдП HTML рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ DOM рддрддреНрд╡реЛрдВ рдХрд╛ рдПрдХ рдкреЗрдбрд╝ рдФрд░ CSS рдирд┐рдпрдореЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╕реАрдПрд╕рдПрд╕ рдирд┐рдпрдо рдПрдХ рдЬреЛрдбрд╝реА рд╣реИ - рдПрдХ рдЪрдпрдирдХрд░реНрддрд╛ рдФрд░ рдЧреБрдгреЛрдВ рдХреА рд╕реВрдЪреАред

рд╣рдо рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╕реЛрдЪрддреЗ рд╣реИрдВ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ HTML рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рд╣реИ? рд╡рд┐рдЪрд╛рд░рдХ рдЬреЛ рд╕реЛрдЪрддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдЕрдВрджрд░ рдХрд╛ рдиреАрдпрди рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрдордХрддрд╛ рд╣реИ: 0.5 рддрддреНрд╡ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИрдВред

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

CSS рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рдмреНрдж


рдПрдХ HTML рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдПрдХ рдкрд╛рд░реНрд╕рд░ рдПрди рддрддреНрд╡реЛрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рдПрдХ рдбреЛрдо рдЯреНрд░реА рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ред рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рд╢реИрд▓реА рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдПрд╕ рд╕реАрдПрд╕рдПрд╕ рдирд┐рдпрдо рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рддрдм рд╕рднреА DOM рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рд╢реИрд▓реА рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдЬрдЯрд┐рд▓рддрд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╡реНрдпрдХреНрдд рдХреА рдЧрдИ рд╣реИ:

O ( N * S * D )
рдЬрд╣рд╛рдВ рдбреА рдкреЗрдбрд╝ рдХреА "рдЧрд╣рд░рд╛рдИ" рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдореАрдЯреНрд░рд┐рдХ рд╣реИред

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдЗрд╕ "рдЕрджреНрднреБрдд" рдирд┐рдпрдо рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

body * { background:red; }

'*' - <body> рдХреЗ рдЕрдВрджрд░ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд╛рд▓ рдкреГрд╖реНрдарднреВрдорд┐ рд░рдВрдЧ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдирд┐рдпрдо рдХрд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд▓рд╛рдн, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдереЛрдбрд╝рд╛ рд╕рд╛ рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЖрдкрдХреЛ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП: DOM рдХрд╛ nth рддрддреНрд╡ рд▓реЗрдВ рдФрд░ рдмреЙрдбреА рдЯреИрдЧ рдХреЗ рд▓рд┐рдП рдЙрд╕рдХреЗ рд╕рднреА рдорд╛рддрд╛-рдкрд┐рддрд╛ (рдЧрд╣рд░рд╛рдИ рд╕реЗ) рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░реЗрдВред рдФрд░ рдЗрд╕рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдПред рдпрджрд┐ рдХреЗрд╡рд▓ рдПрд╕ рдРрд╕реЗ рдирд┐рдпрдо рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдКрдкрд░ рджрд┐рдП рдЧрдП рд╕реВрддреНрд░ рд╣реИрдВред

рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдПрди * рдПрд╕ * рдбреА рд╕реНрдерд┐рд░ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрддрдирд╛ рдбрд░рд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ - рд╣рдордиреЗ рдЗрд╕реЗ рдПрдХ рдмрд╛рд░ рдЧрдгрдирд╛ рдХреА рдФрд░ рдЗрд╕реЗ рднреВрд▓ рдЧрдПред рд▓реЗрдХрд┐рди рд▓рдЧрд╛рддрд╛рд░ рдЧрддрд┐рд╢реАрд▓ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдорд╕реНрдпрд╛рдПрдВ рд╕рдВрднрд╡ рд╣реИрдВред рдХрд╣рддреЗ рд╣реИрдВ, рдпрджрд┐ рдЖрдк рдХрдВрдЯреЗрдирд░ рддрддреНрд╡ рдХреА рдХрдХреНрд╖рд╛ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХреЗ рдкреВрд░реЗ рдЙрдкрд░реА рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдпрд╣ рдлрд┐рд░ рд╕реЗ, рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ O ( N * S * D ) рдХрд╛рд░реНрдп рд╣реИред

рдмреЗрд╢рдХ рд╕реАрдПрд╕рдПрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╢реИрд▓рд┐рдпреЛрдВ рдХреА рдкреБрдирд░реНрдЧрдгрдирд╛ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред O (N ...) рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рдореБрдЦреНрдп рддрд░реАрдХрд╛ рдкрд░рд┐рдгрд╛рдо рдХреИрд╢рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдХрд╣рддреЗ рд╣реИрдВ, рдЬрдм рдХрд┐рд╕реА рддрддреНрд╡ рдХреА рд╢реИрд▓реА рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдкрд┐рдЫрд▓реЗ рддрддреНрд╡ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрджрд┐ рдпрд╣ рдЦреЛрдЬ рдХреА рдЧрдИ "рд╕рдорд╛рди" рд╣реИ, рддреЛ рдЗрд╕рдХреА рд╢реИрд▓реА рд▓реЗрдВ (рдпрджрд┐ рдЗрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рд▓реЗрдХрд┐рди рдпрд╣ рдЯреНрд░рд┐рдХ li:nth-child(even) рдЬреИрд╕реЗ рдирд┐рдпрдореЛрдВ рдкрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдареЛрдХрд░ li:nth-child(even) ред рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рд╕реНрдкрд╖реНрдЯ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП WebKit рдбрд╛рдпрдиреЗрдорд┐рдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд DOM рд╡рд┐рд╢реЗрд╖рддрд╛ "рдореЛрдб" рдФрд░ рдлреЙрд░реНрдо body[mode=first] .widget {color:red} рдХреЗ рдирд┐рдпрдореЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХреЛ рдмрджрд▓рдХрд░ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рдбрд┐рд╕реНрдкреНрд▓реЗ рдореЛрдб рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ body[mode=first] .widget {color:red} рдФрд░ body[mode=second] .widget {color:green} рддрдмред рдЖрдк рд╕рдлрд▓ рдирд╣реАрдВ рд╣реБрдП (WebKit рдореЗрдВ) рдЗрд╕ рдЗрдВрдЬрди рдореЗрдВ рдРрд╕рд╛ рдЕрдиреБрдХреВрд▓рди рд╣реИред

рд╢реИрд▓рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕:

  1. рд╣рдо рдирд┐рдпрдореЛрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдХреБрдЫ рдирд┐рдпрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЗрд╕рдХреЗ рдЪрдпрдирдХрд░реНрддрд╛ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡ рдирд╣реАрдВ рд╣реИрдВ), рдпрд╣ рдЕрднреА рднреА рд╕реАрдкреАрдпреВ рдХреЛ рд▓реЛрдб рдХрд░реЗрдЧрд╛ред рдРрд╕реЗ рдирд┐рдпрдореЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред
  2. рдПрдХ рдпреМрдЧрд┐рдХ рдЪрдпрдирдХрд░реНрддрд╛ рдореЗрдВ, рд╕рд╣реА-рд╕рдмрд╕реЗ рдЪрдпрдирдХрд░реНрддрд╛ рд╕рдВрднрд╡рддрдГ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ (рд╡рд┐рд╢рд┐рд╖реНрдЯ?) рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
    рдЙрджрд╛рд╣рд░рдг: ul.cls2 li рдЪрдпрдирдХрд░реНрддрд╛, ul li.cls1 рдЪрдпрдирдХрд░реНрддрд╛ рд╕реЗ рдЗрд╕ рдорд╛рдпрдиреЗ рдореЗрдВ рднреА рдмрджрддрд░ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, ul.cls2 рдХреЗ рд▓рд┐рдП рд╕рднреА рд▓реА рдПрд▓рд┐рдореЗрдВрдЯреНрд╕ рдФрд░ рдЙрдирдХреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╕реНрдХреИрди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ, рд▓реА рд▓реА рдХрд╛ рд╕реЗрдЯ рдЬрд┐рд╕рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЦреЛрдЬ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреА рдЬрд╛рддреА рд╣реИ - рдХреЗрд╡рд▓ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП li рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЧ = cls1 рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  3. .cls2 .cls1 .cls2 > .cls1 рд╕реЗ "рдмрджрддрд░" рд╣реИред рджреВрд╕рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЕрдиреБрдкрд╛рд▓рди рдЬрд╛рдВрдЪ рд╣рдореЗрд╢рд╛ рддрддреНрд╡ рдФрд░ рдЙрд╕рдХреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рддрдХ рд╣реА рд╕реАрдорд┐рдд рд░рд╣реЗрдЧреАред рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рджреЗрдЦрдиреЗ рдХреА рдЧрд╣рд░рд╛рдИ рдЬрдбрд╝ <html> рд╕рдорд╛рд╡реЗрд╢реА рд╣реИред

рд▓реЗрдЖрдЙрдЯ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╢рдмреНрдж


... рдФрд░ рдпрд╣ рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдХрд╛ рд╡рд┐рд╖рдп рд╣реИ рдпрджрд┐ рдХреЛрдИ рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддрд╛ рд╣реИред

Source: https://habr.com/ru/post/In140399/


All Articles