Я пытаюсь создать форму поиска в CSS, используя макет сетки. Моя цель состоит в том, чтобы форма выглядела примерно так:
.
Мой подход состоял в том, чтобы иметь 4 строки:
- 1 строка для ввода/текстовой метки
- 1 строка для поля ввода/текста
- 1 строка для флажка
- 1 строка для кнопки поиска
и 10 дробных столбцов:
- метка ввода/текста будет занимать 3 столбца
- поле ввода/текста будет занимать 10 столбцов
- флажок будет охватывать 2/3 столбца, а метка будет в той же строке, охватывающей 3/4 столбца
- кнопка поиска будет располагаться по центру и охватывать 7 столбцов
* {
margin: 0;
padding: 0;
box-sizing: border-box;
background-color: #fff;
}
form {
margin: 10% 2%;
border-radius: 10px;
background-color: #f2f2f2;
padding: 30px;
display: grid;
/*row for search field, row for checkbox, empty row, search button row
checkbox is 1 column, label is 4 columns, search button is 7 columns*/
grid-template-rows: 60px 45px 45px 60px;
grid-template-columns: repeat(10, 1fr);
}
label {
grid-row: 1;
grid-column: 1 / 11;
}
input[type=text] {
grid-row: 2;
grid-column: 2 / 11;
}
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<link rel="stylesheet" type="text/css" href="layout.css">
</head>
<body>
<div class="form">
<form action="{% url 'search_results' %}" method="post">
<label for="search_field">Search for:</label>
<!--<br>-->
<input required id="search_field" type="text" name="search_term" placeholder="Search for...">
<br>
<input id="is_date" type="checkbox" name="is_date" value="date">
<label for="is_date">I'm searching for a date (e.g. 02/10)</label>
<br><br>
<!--<input type="submit" value="Search">-->
<button>Search</button>
</form>
</div>
</body>
</html>
Но каким-то образом я получаю вывод ниже.
Я подхожу к этому неправильно? Разве поле ввода/текста не должно быть во второй строке, а не в первой строке с меткой и т. д.?