Центрировать форму внутри фонового изображения и рамки

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

.question-box {
  width: 50%;
  height: 400px;
  /* make dependent on content inside */
  /*padding: 50px;*/
  margin: auto;
  border: 10px solid #6c85bd;
  box-sizing: border-box;
  border-radius: 25px;
  position: relative;
}

.question-box img {
  width: 100%;
  height: 100%;
  border-radius: 15px;
  object-fit: cover;
}

.question-box form {
  display: block;
  height: 50%;
  position: absolute;
}

input {
  width: 100%;
}
<div class = "question-box">
  <img src = "<?php echo htmlspecialchars($defaultImage2); ?>"></img>
  <form class = "form" action = "" method = "post">
    <input type = "text" name = "name" placeholder = "Name..">
    <button type = "submit" name = "submit">Sign up!</button>
  </form>
</div>

Классы «вопрос-окно» и «img» не имеют каких-либо проблем.

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

Не могли бы вы заменить вызов PHP реальным изображением, которое можно загрузить в демо-версию? Является ли изображение каким-то фоном или это контент, который должен присутствовать?

David Thomas 14.07.2024 22:39
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в 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. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
1
73
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Обновите свой CSS следующим образом:

.question-box form {
   display: block;
   height: 50%;
   position: absolute;
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%);
}

Вы также можете централизовать, используя flex:

.question-box {
   display: flex;
   align-items: center;
   justify-content: center;
}

При использовании flex используйте изображение с фоном.

.question-box {
   background-image: url('your image url here');
}

Это централизует форму для вас.

Если единственной целью изображения является отображение в качестве фона блока, используйте для фона CSS вместо элемента img.

А поскольку изображение извлекается с помощью некоторого PHP-скрипта, используйте атрибут style для .question-box div и вставьте туда оператор php для свойства css background-image: ....;

Теперь, когда мы избавились от элемента img, используйте эти свойства CSS, чтобы центрировать .question-box контент:

.question-box{
   /*Your previous properties*/
   display:flex;
   flex-direction:column;
   justify-content: center;
   align-items: center;
}

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