«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Мне нравится двигаться, двигаться (Часть 2)

Мне нравится двигаться, двигаться (Часть 2)

Опубликовано 26 августа 2024 г.
Просматривать:273

Добро пожаловать! Если вы следили за неделей за неделей, возможно, вы заметили, что в этой серии был небольшой перерыв! Если вы следили за мной, мне очень жаль!

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

Хорошо, хорошо. Хватит саморекламы, давайте вернемся к перемещению наших коробочек по экрану!

Получите свой CodePen!

Как и в первой части, вы сможете следовать своему шаблону CodePen! Если вы не читали Часть 1, прочтите ее здесь. А если вам нужен новый шаблон, нажмите здесь.

Что такое свойство отображения?

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

Отображение отличается тем, что оно влияет на способ интерпретации макета: тип отображения. Свойство display для CSS поначалу является немного медвежьим, поскольку оно не только устанавливает тип отображения для элемента, к которому оно применяется (внешний тип отображения), но также задает поведение отображения для элементов, содержащихся внутри элемента, к которому применяется свойство. применяется к (внутреннему типу отображения).

Встроенный или блочный

Большинство элементов, которые мы использовали до сих пор, имеют внешний тип отображения по умолчанию — блок. Это означает, что никакие другие элементы не будут занимать то же вертикальное пространство, что и этот элемент. По сути, любой новый добавленный элемент создаст «новую строку».

Не все элементы такие. Например, теги

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

Ну, независимо от значений по умолчанию для элемента, вы можете изменить это свойство, установив:

display: block
display: inline-block

Теперь в коде измените набор правил .box, чтобы все поля отображались рядом.

I Like to Move It, Move It (Part 2)

Флексбокс и сетка

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

Дисплей: гибкий

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

Чтобы увидеть это в действии, взгляните на набор правил .frame в Codepen.

Раскомментируйте следующую строку кода:

display: flex;

I Like to Move It, Move It (Part 2)

Это очень похоже на четыре строчных блока, верно? По умолчанию гибкий контейнер выравнивает свои элементы по началу флексбокса или по левому краю, но это тоже можно изменить!

Под объявлением флексбокса добавьте следующее:

justify-content: center;

И теперь мы должны увидеть, как все поля появляются в центре экрана!

I Like to Move It, Move It (Part 2)

Но что, если мы не хотим, чтобы они вот так застряли на вершине? Добавим еще:

align-items: center;

I Like to Move It, Move It (Part 2)

Большой!

Дисплей: Сетка

Примечание. Прежде чем двигаться дальше в CodePen, обязательно закомментируйте или удалите строки, содержащие display: flex и добавленные вами свойства justify-content или align-items.

Помимо флексбокса у нас также есть возможность превратить весь наш элемент в сетку, в которой мы можем размещать элементы!

Я не буду здесь вдаваться в подробности этого кода, но знайте, что это возможно, объявив элемент сеткой, предоставив шаблон сетки, а затем разместив элементы внутри сетки!

Раскомментируйте следующие строки в наборе правил .frame!

display: grid;  
  grid-template: 1fr 1fr / 1fr 1fr;
  align-items: center;
  justify-items: center;

Теперь вы должны увидеть каждый из прямоугольников, расположенных в центре квадранта кадра!

I Like to Move It, Move It (Part 2)

Используйте свои новые навыки!

Как и в предыдущей статье, здесь есть ряд проблем. Перед попыткой удалить или повторно прокомментировать строки кода, создающие макет сетки!

Задача № 1: Найдите в MDN правильное свойство justify-content, чтобы каждый из блоков отображался равномерно в горизонтальной плоскости, не касаясь сторон, и в центре по вертикали, как показано на рисунке ниже.

I Like to Move It, Move It (Part 2)

Задание № 2: Все еще находясь в гибком контейнере, посмотрите, сможете ли вы сгруппировать все блоки вместе и разместить их в правом нижнем углу! (Какие свойства вам придется для этого настроить?)

I Like to Move It, Move It (Part 2)

Задача №3: Можете ли вы найти гибкое свойство, которое изменит порядок отображения элементов?

I Like to Move It, Move It (Part 2)

Поздравляем с завершением этих испытаний! Увидимся на следующей неделе, чтобы узнать больше о HTML и CSS!

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/nmiller15/i-like-to-move-it-move-it-part-2-4p12?1 Если есть какие-либо нарушения, пожалуйста, свяжитесь с [email protected] удалить его
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3