рд╡рд┐рд╕реНрддреГрдд рдЙрддреНрддрд░реЛрдВ рдХреЗ рд╕рд╛рде рдореЗрд░рд╛ рдкрд╕рдВрджреАрджрд╛ рд╕реАрдПрд╕рдПрд╕ рдкреНрд░рд╢реНрди

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


1 рдореЗрдВред рдореИрдВ рдПрдХ рдЕрдХреНрд╖рдо рддрддреНрд╡ рд╡рд╛рд▓реЗ рдмрдЯрди рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдХреИрд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?


рдЙрддреНрддрд░

, disabled, .


button[disabled] {
  opacity: 0.24;
}

рджреЛ рдореЗрдВред рдореИрдВ рддреБрд░рдВрдд рдЗрдирдкреБрдЯ рддрддреНрд╡ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрдкреИрди рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдХреИрд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?


рдЙрддреНрддрд░

(+).


input + span {
  opacity: 0.24;
}

3 рдореЗрдВред рдореИрдВ рдПрдХ рдЗрдирдкреБрдЯ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдЕрдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдореЗрдВ "рд░реЗрдбрд┐рдпреЛ" рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреНрд░рдХрд╛рд░ рд╣реИ?


рдЙрддреНрддрд░

type="radio" .


input[type="radio"] {
  opacity: 0.24;
}

4 рдкрд░ред рдПрдХ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рд╣реИред рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдкрд╣рд▓реЗ рдФрд░ рджреВрд╕рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдордЬреЗрдВрдЯрд╛ рдкреГрд╖реНрдарднреВрдорд┐ рд╡рд╛рд▓реЗ рдХрд┐рддрдиреЗ рддрддреНрд╡ рд╣реЛрдВрдЧреЗред


<div class="some-element">some text</div>
<div class="some-element">some text</div>
<article class="some-element">some text</article>

рдорд╛рдорд▓рд╛ рдПрдХ


.some-element:first-child {
  background-color: purple;
}

рдорд╛рдорд▓рд╛ 2


.some-element:first-of-type {
  background-color: purple;
}

рдЙрддреНрддрд░

, тАФ 2.


5 рдмрдЬреЗред рдЫрджреНрдо рд╡рд░реНрдЧ рдХреНрдпрд╛ рд╣реИ: рдЬрдбрд╝?


рдЙрддреНрддрд░

:root тАФ , . HTML html. SVG svg.


6 рдкрд░ред рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИ: рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░-рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рдЫрджреНрдо-рд╡рд░реНрдЧ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?


рдЙрддреНрддрд░

:placeholder-shown , input textarea placeholder. , placeholder , :placeholder-shown .


input:placeholder-shown {
  background-color: lightgray;
}

7 рдмрдЬреЗред рдореИрдВ рдПрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рд╕реАрдПрд╕рдПрд╕ рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдореЗрдВ рдлреЛрдХрд╕ рдореЗрдВ рдПрдХ рддрддреНрд╡ рд╣реИ?


рдЙрддреНрддрд░

:focus-within.


<div class="some-parent">
  <button type="button">Some button</button>
</div>

.some-parent:focus-within {
  outline: 2px solid purple;
  outline-offset: 5px;
}

8 рдкрд░ред рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдЬрд┐рд╕ рдмрд┐рдВрджреБ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдЙрд╕реЗ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИ?


рдЙрддреНрддрд░

. tbody:hover , opacity . opacity , :not(:hover).


tbody:hover tr:not(:hover) {
  opacity: 0.24;
}

9 рдкрд░ред рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреИрд╕реЗ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рд░рдВрдЧ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдореВрд▓реНрдп рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдиреЗ рдкрд░ рдкреГрд╖реНрдарднреВрдорд┐-рд░рдВрдЧ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдореВрд▓реНрдп рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрджрд▓ рдЬрд╛рдП?


.link {
  color: #222;
}

.link::before {
  background-color: #222;
}

рдЙрддреНрддрд░

currentColor, color . .link.


.link {
  color: #222;
}

.link::before {
  background-color: currentColor;
}

рджрд╕ рдкрд░ред рдЙрдкрд╛рдп рд░рд┐рдо рдХреА рдЗрдХрд╛рдИ рдХреА рдЧрдгрдирд╛ html рддрддреНрд╡ рдХреЗ рдлрд╝реЙрдиреНрдЯ-рдЖрдХрд╛рд░ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдореВрд▓реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреА рдЬрд╛рддреА рд╣реИред рд╕рдЪ рдпрд╛ рдЭреВрда?


рдЙрддреНрддрд░

.


11. button 16px font-size. 8px padding em?


8px 16px.


button {
  font-size: 16px;
  padding: .5em;
}

12. 10vw padding-left. px, тАФ 480x320px?


vw тАФ . 10vw 10% , . 480px. 10vw 48px.


13. div ?


<body>
  <div>element 1</div>
  <div>element 2</div>
</body>

div , .


14. width .child 1000px. ? ?


<body>
  <div class="parent">
    <div class="child">element 2</div>
  </div>
</body>

.parent {
  width: 1000px;
}

. width . width .child width .


15. height ?


height .


16. . ?


.


17. .child тАФ 196x196px. ?


<body>
  <span class="child">element</span>
</body>

.child {
  width: 196px;
  height: 196px;
}

, width height , .


18. .child ?


<body>
  <div class="parent">
    <div class="child">element 2</div>
  </div>
</body>

.child {
  margin-top: 10px;
}

, .child .parent, margin .


19. display ?


span {
  display: inline-block;
  position: absolute;
}

block. position: absolute . inline-block block.


20. width .child 1000px. ? ?


<body>
  <div class="parent">
    <div class="child">element 2</div>
  </div>
</body>

.parent {
  width: 1000px;
}

.child {
  position: absolute;
}

. position: absolute width .


21. .parent ?


<body>
  <div class="parent">
    <div class="child">element 2</div>
  </div>
</body>

.child {
  position: absolute;
}

- , . , .parent .


22. span ?


span {
  width: 300px;
  height: 300px;
  position: absolute;
}

300x300px, span .


23. .child 20px .parent. ?


<body>
  <div class="parent">
    <div class="child">element 2</div>
  </div>
</body>

.parent {
  box-sizing: border-box;
  width: 1000px;
  padding: 20px;
}

.child {
  position: absolute;
}

. position: absolute , , top, right, bottom, left. .child 20px , position: absolute .


24. display ?


span {
  display: inline-block;
  position: relative;
}

inline-block, .. position: relative, display.


25. span ?


span {
  width: 300px;
  height: 300px;
  display: flex;
}

display: flex, . width height span. тАФ 300x300px.


26. .child display inline-block. ?


<div class="parent">
  <span class="child">element2</span>
</div>

.parent {
  display: flex;
}

.child {
  display: inline-block;
}

. - . тАФ block.


27. width .child . ?


<div class="parent">
  <div class="child">element2</div>
</div>

.parent {
  display: flex;
}

.


28. ?


<body>
  <div class="parent">
    <div class="first-child">element 1</div>
    <div class="second-child">element 2</div>
  </div>
</body>

.parent {
  display: flex;
  flex-direction: column;
}

.first-child {
  margin-bottom: 20px;
}

.second-child {
  margin-top: 10px;
}

30px, - .


29. .child ?


<div class="parent">
  <span class="child">element2</span>
</div>

.parent {
  display: flex;
  width: 250px;
  height: 250px;
}

.child {
  width: 100px;
  height: 100px;
  margin-top: auto;
  margin-left: auto;
}

150px.


B30 рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╕реНрдкреИрди рддрддреНрд╡ рдХреЗ рдЖрдХрд╛рд░ рдХреНрдпрд╛ рд╣реИрдВ?


<div class="parent">
  <span class="child">element2</span>
</div>

.parent {
  display: flex;
}

.child {
  flex-basis: 250px;
  width: 100px;
  height: 200px;
  min-width: 150px;
  max-width: 225px;
}

рдЙрддреНрддрд░

225px. flex-basis width, min-width max-width. 250px (flex-basis) , 225px.


All Articles