<form>
<div class="form-container">
<div class="form-item">
<label for="form-firstname">First name</label>
<input type="text" id="form-firstname">
</div>
<div class="form-item">
<label for="form-lastname">Last name</label>
<input type="text" id="form-lastname">
</div>
<div class="form-item">
<label for="form-email">Email address</label>
<input type="email" id="form-email" aria-describedby="form-email-helper">
<p class="form-helper" id="form-email-helper">Expected format: ada.lovelace@codelikealady.com</p>
</div>
</div>
</form>
body {
font-family: Arial, sans-serif;
}
* {
box-sizing: border-box;
}
form {
background: #faf8f4;
max-width: 800px;
padding: 2rem;
}
.form-container {
container: form / inline-size;
}
.form-item + .form-item {
margin-top: 1.5rem;
}
label {
display: block;
font-size: 1.25rem;
margin-bottom: 0.25em;
}
input[type="text"],
input[type="email"] {
background: #fff;
border: 1px solid #564f6c;
border-radius: 2px;
font-size: 1.25rem;
padding: 0.25em 0.5em;
width: 100%;
}
input:focus {
outline: 2px solid #594a87;
outline-offset: 1px;
}
.form-helper {
font-size: 0.9375rem;
margin: 0.5em 0 0;
}
@container form (min-width: 600px) {
.form-item {
display: flex;
align-items: center;
flex-wrap: wrap;
}
label {
flex-basis: 25%;
margin: 0;
text-align: right;
padding-right: 0.75em;
width: 25%;
vertical: middle;
}
input[type="text"],
input[type="email"] {
flex-grow: 1;
width: auto;
}
.form-helper {
flex-basis: 100%;
padding-left: 25%;
}
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.