Skip to content

Commit 80ef04c

Browse files
committed
Правки curveball
1 parent b8f5546 commit 80ef04c

File tree

4 files changed

+28
-28
lines changed

4 files changed

+28
-28
lines changed

2-ui/1-document/09-size-and-scroll/4-put-ball-in-center/solution.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
Мяч имеет CSS-свойство `position:absolute`. Это означает, что координаты `left/top` измеряются относительно ближайшего спозиционированного элемента, которым является `#field` (т.к. у него есть CSS-свойство `position:relative`).
22

3-
Координаты отсчитываются от внутреннего верхнего-левого угла поля:
3+
Координаты отсчитываются от внутреннего верхнего левого угла поля:
44

55
![](field.png)
66

7-
Ширина и высота внутреннего поля - это `clientWidth/clientHeight`. Таким образом его центр имеет координаты `(clientWidth/2, clientHeight/2)`.
7+
Ширина и высота внутреннего поля -- это `clientWidth/clientHeight`. Таким образом, его центр имеет координаты `(clientWidth/2, clientHeight/2)`.
88

99
...Но если мы установим мячу такие значения `ball.style.left/top`, то в центре будет не сам мяч, а его левый верхний угол:
1010

@@ -34,7 +34,7 @@ ball.style.top = Math.round(field.clientHeight / 2 - ball.offsetHeight / 2) + 'p
3434

3535
До тех пор, пока браузеру неизвестны ширина и высота изображения (из атрибута HTML-тега или CSS-свойств), подразумевается, что они равны `0`, пока изображение не загрузится.
3636

37-
На самом же деле при первой загрузке браузер обычно кеширует изображения и при следующей загрузке будут доступны все размеры.
37+
На самом же деле при первой загрузке браузер обычно кеширует изображения, и при следующей загрузке будут доступны все размеры.
3838

3939
Но при первой загрузке значение мяча `ball.offsetWidth` равно `0`. Это приводит к вычислению неверных координат.
4040

2-ui/1-document/09-size-and-scroll/6-width-vs-clientwidth/solution.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22

33
1. `clientWidth` возвращает число, а `getComputedStyle(elem).width` - строку с `px` на конце.
44
2. `getComputedStyle` не всегда даст ширину, он может вернуть, к примеру, `"auto"` для строчного элемента.
5-
3. `clientWidth` соответствует внутренней видимой области элемента, включая внутренние отступы (padding), а CSS-ширина (при стандартном значении `box-sizing`) соответствует внутренней видимой области *без внутренних отступов*.
5+
3. `clientWidth` соответствует внутренней видимой области элемента, включая внутренние отступы, а CSS-ширина (при стандартном значении `box-sizing`) соответствует внутренней видимой области *без внутренних отступов*.
66
4. Если есть полоса прокрутки, и для неё зарезервировано место, то некоторые браузеры вычитают его из CSS-ширины (т.к. оно больше недоступно для содержимого), а некоторые - нет. Свойство `clientWidth` всегда ведёт себя одинаково: оно всегда обозначает размер за вычетом прокрутки, т.е. реально доступный для содержимого.

2-ui/1-document/09-size-and-scroll/6-width-vs-clientwidth/task.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ importance: 5
22

33
---
44

5-
# В чём отличие CSS-свойства width и clientWidth
5+
# В чём отличие CSS-свойств width и clientWidth
66

77
В чём отличие между `getComputedStyle(elem).width` и `elem.clientWidth`?
88

0 commit comments

Comments
 (0)