CSS: Позиционирование элементов

Теория: Относительное и абсолютное позиционирование

В уроке про абсолютное позиционирование было сказано о том, что элемент позиционируется относительно угла страницы. Такое поведение не всегда удобно и тому есть несколько причин:

  • Мы хотим абсолютно спозиционировать элемент не относительно страницы, а относительно одного из родительских элементов.
  • При изменении ширины страницы, абсолютно спозиционированный элемент также будет перемещаться, так как его координаты отсчитываются от края.

Представим ситуацию, при которой мы хотим создать блок с возможностью его закрытия при клике на крестик в верхнем правом углу. В данный момент нас интересует именно возможность создать такой крестик, при этом не внося сложные вещи в верстку. Для этого отлично подходит абсолютное позиционирование. С помощью него и правил top, right мы можем сказать, что крестик всегда будет располагаться в верхнем правом углу.

Вопрос только в том, как расположить его относительно блока? На самом деле, элемент при абсолютном позиционировании будет расположен относительно края страницы только в тех случаях, когда ни у одного из родительских элементов нет другого позиционирования. То есть, если у родительского блока относительное или абсолютное позиционирование, то дочерний элемент (с абсолютным позиционированием) будет располагаться относительно него, а не края страницы.

В таком случае задача расположения элемента для закрытия блока становится простой — нам необходимо только указать относительное позиционирование у всего блока, а кнопку закрытия абсолютно спозиционировать уже относительно этого блока.

https://codepen.io/hexlet/pen/MWgEqJj

Рекомендуемые программы

Дальше

Завершено

0 / 8

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845