Мы можем использовать селектор +
и изменять порядок элементов в html и возвращать его обратно через css, используя свойство order
, являющееся частью flexbox.
[table] {
display: table;
}
[row] {
display: flex;
}
input {
margin-left: auto;
order: 2;
}
[row]>input:focus+label {
color: red;
}
<div class="form">
<div table>
<div row>
<input type="text" name="name" placeholder="Name" required>
<label class="form-label">Name:</label>
</div>
<div row>
<input type="email" name="email" placeholder="Email" required>
<label>Email:</label>
</div>
<div row>
<input type="phone" name="phone" placeholder="Phone number" required>
<label>Phone number:</label>
</div>
</div>
</div>