Simply add to .wrapper
line-height: 25px;
and
.wrapper * {
vertical-align: middle;
}
.wrapper {
height: 25px;
line-height: 25px;
}
.wrapper * {
vertical-align: middle;
}
.myinput {
box-sizing: border-box;
width: 150px;
height: 100%;
}
.mybutton {
display: inline-block;
box-sizing: border-box;
padding: 0 0.5em;
background-color: #57A3E7;
color: white;
}
<div class="wrapper">
<input class="myinput" placeholder="hello@example.com" type="email">
<div class="mybutton">Go!</div>
</div>
To see how they are vertical aligned in more extreme cases:
.wrapper {
height: 125px;
line-height: 125px;
}
.wrapper * {
vertical-align: middle;
}
.myinput {
box-sizing: border-box;
width: 150px;
height: 22px;
}
.mybutton {
display: inline-block;
box-sizing: border-box;
padding: 0 0.5em;
background-color: #57A3E7;
color: white;
}
<div class="wrapper">
<input class="myinput" placeholder="hello@example.com" type="email">
<div class="mybutton">Go!</div>
</div>
Or
.wrapper {
height: 125px;
line-height: 125px;
}
.wrapper * {
vertical-align: middle;
}
.myinput {
box-sizing: border-box;
width: 150px;
height: 100%;
}
.mybutton {
display: inline-block;
box-sizing: border-box;
padding: 0 0.5em;
background-color: #57A3E7;
color: white;
font-size: 96px;
}
<div class="wrapper">
<input class="myinput" placeholder="hello@example.com" type="email">
<div class="mybutton">Go!</div>
</div>
Without the vertical-align: middle;
, the third example will not be aligned.