Итоги
На этом уроке вы узнали, как браузер размещает элементы на странице и как это изменить. Теперь вы знаете, что:
- Если ничего не менять, элементы размещаются в нормальном потоке: один за другим, в том порядке, в каком они идут в HTML.
- Блочные элементы (
display: block), такие как заголовки, абзацы иdiv, начинаются с новой строки и занимают всю ширину родителя. Если у них задана ширина, их можно отцентрировать с помощьюmargin: 0 auto. - Строчные элементы (
display: inline), такие какstrong,aиspan, стоят в строке текста, как слова. Они игнорируютwidth,heightи верхний и нижний внешние отступы (изображения — исключение). - Строчно-блочные элементы (
display: inline-block) выстраиваются в ряд, как строчные, но размеры им можно задавать, как блокам. Как и текст, они выравниваются с помощьюtext-alignу родителя. display: noneскрывает элемент, и он не занимает места. С помощью:hoverего можно показывать, только пока указатель мыши находится над другим элементом.- По умолчанию
positionравноstatic: элемент остаётся там, куда его ставит нормальный поток. - Смещения
top,right,bottomиleftдвигают элементы, у которых позиционирование отлично отstatic. Отрицательные значения двигают их в другую сторону. position: relativeсдвигает элемент с исходного места, которое остаётся за ним закреплённым.position: absoluteвыводит элемент из нормального потока. Его смещения отсчитываются от ближайшего предка с позиционированием, отличным отstatic, а если такого нет — от первого экрана страницы. Чаще всего его помещают внутрь родителя сposition: relative.position: fixedработает как абсолютное позиционирование, но смещения отсчитываются от окна браузера, поэтому элемент не двигается при прокрутке.position: stickyоставляет элемент в нормальном потоке, пока прокрутка не унесла бы его за границу, заданную смещением. Тогда он прилипает к этому краю, но только пока его родитель виден на экране.z-indexрешает, какой из перекрывающихся элементов с позиционированием окажется сверху: побеждает большее значение.
Наши карточки пород теперь стоят в ряд, но inline-block даёт над ними мало контроля: мы не можем легко равномерно распределить их по ряду или сделать их одинаковой высоты. На следующем уроке, Flexbox, вы узнаете главный инструмент для расположения элементов рядом друг с другом.
Задание
- 1
Поздравляем, вы прошли урок «Display и позиционирование»! Когда будете готовы, переходите к следующему уроку — «Flexbox».