如何保持HTML表单输入水平和居中,而移动标签以上的框?



我试图让我的CSS完成你在图片中看到的

HTML表单目标

我想移动标签分钟,秒&;十位到表单输入的顶部。同时保持窗体水平居中

label {
display: inline-block;
padding-bottom: 8px;
font-size: 22px;
font-family: Georgia, 'Times New Roman', Times, serif;
}
input {
display: inline-block;
padding:10px 20px;
font-size: 18px;
letter-spacing:2px;
}
#formSection {
padding-top: 30px;
}
#button {
color:#fff;
background:#3399cc;
padding:20px 40px;
margin-top: 20px;
text-decoration:none;
letter-spacing:2px;
text-transform:uppercase;
}
<form>
<div id="formSection">
<label for="minIn">Minutes</label>
<input type="number" value="20" name="mins" id="minIn"> 
<label for="secsIn">seconds</label>
<input type="number" value="10" name="secs" id="secsIn"> 
<label for="tensIn">Tens</label> 
<input type="number" value="5" name="tens" id="tensIn">
</div> 
<input type="submit" value="submit" id="button" onclick="submitMins();return false">
</form>

我将标签/输入放入具有display: inline-block的单独div容器中,然后还将display: block添加到您的标签/输入元素中。仅供参考,你的初始CSS缺少它的类。我只是假设它是minIn

.minIn {
display: inline-block;
position: relative;
padding-bottom: 8px;
font-size: 22px;
font-family: Georgia, 'Times New Roman', Times, serif;
}
.container {
display: inline-block;
}
input {
padding:10px 20px;
font-size: 18px;
letter-spacing:2px;
}
label, input {
display: block;
}
#formSection {
padding-top: 30px;
}
#button {
color:#fff;
background:#3399cc;
padding:20px 40px;
margin-top: 20px;
text-decoration:none;
letter-spacing:2px;
text-transform:uppercase;
}
<form>
<!-- <div id="formSection"> -->
<div class="container">
<label class="minIn">Minutes</label>
<input type="number" value="20" name="mins" id="minIn">
</div>

<div class="container">
<label for="secsIn">seconds</label>
<input type="number" value="10" name="secs" id="secsIn">
</div>

<div class="container">
<label for="tensIn">Tens</label>
<input type="number" value="5" name="tens" id="tensIn">
</div>
<!-- </div>  -->

<input type="submit" value="submit" id="button" onclick="submitMins();return false">
</form>

为了向您展示基本概念,我更改了您的标记并最小化了CSS:

form {text-align: center; width: 100%;} /* center the form content */
#formSection { /* put each label on center */
display: flex;
justify-content: center;
text-align: center;
}
#formSection input {display: block; } /* place inputs as new line under label's text */
<form>
<div id="formSection">
<label for="minIn">Minutes
<input type="number" value="20" name="mins" id="minIn"> 
</label>
<label for="secsIn">seconds
<input type="number" value="10" name="secs" id="secsIn"> 
</label>
<label for="tensIn">Tens
<input type="number" value="5" name="tens" id="tensIn">
</label> 
</div> 
<input type="submit" value="submit" id="button" onclick="submitMins();return false">
</form>

你可以这样做:

input {
padding: 10px 20px;
font-size: 18px;
letter-spacing: 2px;
}
.field {
display: inline-block;
}
.field label {
display: block;
}
#formSection {
padding-top: 30px;
}
#button {
color: #fff;
background: #3399cc;
padding: 20px 40px;
margin-top: 20px;
text-decoration: none;
letter-spacing: 2px;
text-transform: uppercase;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form>
<div id="formSection">
<div class="field">
<label for="minIn">Minutes</label>
<input type="number" value="20" name="mins" id="minIn">
</div>
<div class="field">
<label for="secsIn">seconds</label>
<input type="number" value="10" name="secs" id="secsIn">
</div>
<div class="field">
<label for="tensIn">Tens</label>
<input type="number" value="5" name="tens" id="tensIn">
</div>
</div>
<input type="submit" value="submit" id="button" onclick="submitMins();return false">
</form>
</body>
</html>

最新更新