Flexbox отказывается оправдывать контент, как я предполагал

я так запутался с flexbox. я пытался использовать его для выравнивания некоторых входных данных в простой форме, но это не сработает так, как я планировал. сначала я сделал это:

.container {
  width: 40vw;
  display: flex;
  justify-content: space-between;
}

и в html:

    <div class = "container">
      <form id = "location">
        <input type = "text" placeholder = "Location">
        <input type = "submit" value = "Get the weather!">
      </form>
    </div>

я надеялся, что justify-content: space-between добавит пространство между двумя входными данными, чтобы они выходили за внешние границы контейнера. не происходит. после прочтения этого: свойство justify-content не работает я попробовал следующее:

.container {
  width: 40vw;
  display: flex;
  justify-content: center;
}

.item {
  flex-grow: 1;
}

и в хтмл

    <div class = "container">
      <form id = "location">
        <div class = "item"><input type = "text" placeholder = "Location"></div>
        <div class = "item"><input type = "submit" value = "Get the weather!"></div>
      </form>
    </div>

теперь это выглядит еще хуже, потому что элементы div находятся друг над другом, а не рядом друг с другом. добавление flex-direction: row ничего не меняет. любой совет?

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
0
0
567
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Если я правильно понимаю, вам нужно добавить flexbox к родителю. Ваше местоположение является родителем элементов ввода.

.container {
 width: 40vw;
  #location   {
    display: flex;
    justify-content: space-between;
              }
            }

Это происходит потому, что вы нацелились не на тот элемент.

Flex работает с родителем элемента, который вы хотите переместить.

Вы хотите переместить элементы form, поэтому вам следует применить flex к тегу form вместо div.container.

Потому что тег form — это просто div, а не элемент, который нужно перемещать.

Вот решение вашей проблемы: https://codepen.io/Juka99/pen/OJRmPVN

Ответ принят как подходящий

#location{
  width: 40vw;
  display: flex;
  justify-content: space-between;
}
 <div class = "container">
      <form id = "location">
        <div class = "item"><input type = "text" placeholder = "Location"></div>
        <div class = "item"><input type = "submit" value = "Get the weather!"></div>
      </form>
    </div>

Вы сделали .container div своим flex-контейнером, который имеет только одну форму #location flex-элемента: вы должны сделать #location форму вашего flex-контейнера, чтобы у него было два дочерних элемента для space-between вашего контейнера шириной 400 пикселей. И это будет работать нормально

Чтобы освежить некоторые основы flex-box, посетите: https://css-tricks.com/snippets/css/a-guide-to-flexbox/

Попробуйте использовать flex box для #location. Родитель 2 входов - это форма, а не контейнер.

Другие вопросы по теме