@titronfan

Почему сдвигается общий div, а не вложенный?

Здравствуйте!
Вот пример:
<div style="width:200px; height:200px; background:#ccc;">
   <div style="margin-top:20px;">123</div>
</div>

Почему при отступе сдвигается общий div, а не внутренний?
  • Вопрос задан
  • 827 просмотров
Решения вопроса 3
Потому что вам нужно почитать про margin collapsing
Вместо margin используйте padding, либо overflow:hidden родителю, либо этот вариант
Ответ написан
Комментировать
TomasHuk
@TomasHuk
Из урока HTML Academy:
«Выпадание» внешних отступов [10/23]
«Выпадание» — это еще один эффект, связанный с вертикальными внешними отступами. Если внутри родительского блока расположить блок и задать ему отступ сверху, то внутренний блок прижмется к верхнему краю родительского, а у родительского элемента появится отступ сверху. Т.е. верхний отступ внутреннего элемента «выпадает» из родительского элемента.

Если у родительского элемента тоже был задан внешний отступ, то выберется максимальный отступ между собственным и «выпавшим» .

Чтобы избавиться от эффекта выпадания, можно задать родительскому элементу внутренний отступ (паддинг) сверху или добавить рамку сверху.

Внешние и внутренние отступы всегда складываются.
Ответ написан
@Camaro67
Помог? - "Отметить решением"
Это называется схлопывание. Информации на этот счет в гугле достаточно.

Можете сделать так:
<div style="width:200px; height:200px; background:#ccc;">
   <div style="position: relative; top:20px;">123</div>
</div>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
MaXComp
@MaXComp
интересуюсь frontend html+css+JS+php. Linux, C
Добавим инфографики:
0003061561.jpg
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы