Два div контейнера, один вложен в другой. Задаю отступы внутреннему, но почему-то смещается внешний, почему так?

Когда вы задаете отступы внутреннему div-контейнеру, это действие влияет на общую ширину этого блока. Если внутренний контейнер имеет ширину 100% или задана конкретная ширина с учетом отступов, то это приводит к изменению ширины всего блока. Когда ширина внутреннего контейнера становится больше доступного пространства внешнего контейнера, то последний вынужден сместиться вправо, чтобы вместить все внутренние элементы.

Чтобы избежать подобного поведения, можно использовать такие методы, как:

1. **Box-sizing: border-box**: Это свойство CSS позволяет включить отступы и границы внутрь указанной ширины блока. Таким образом, ширина блока включает отступы и границы, и изменения внутреннего блока не влияют на внешний.

div {
    box-sizing: border-box;
}

2. **Использование padding вместо margin**: Вместо добавления отступов внутреннему div-контейнеру, можно добавить внутренние отступы через свойство padding у внешнего контейнера. Это позволит избежать смещения внешнего контейнера.

3. **Использование позиционирования**: Если необходимо сохранить разные модели поведения блоков, то можно использовать позиционирование элементов абсолютно или относительно друг друга.

Надеюсь, эти рекомендации помогут разобраться с причинами смещения внешнего контейнера при добавлении отступов внутреннему. Если у вас остались дополнительные вопросы, не стесняйтесь задавать!