.wrapper {
display: flex;
justify-content: center;
align-items: center;
width: 100vw;
height: 100vh;
background-color: blueviolet;
}
.welcome_text {
width: 500px;
}
.welcome_form input,
.welcome_form button {
display: block;
width: 100%;
}
.welcome_form input {
margin-bottom: 15px;
padding: 100px;
}
<div class="wrapper">
<div class="welcome_text">
<form class="welcome_form">
<input type="text">
<button type="submit">Start Quiz</button>
</form>
</div>
</div>
You can clearly see that I have defined welcome_text to have a width of 500px
But the render is not aligned (see the screenshot) and the effect is multiplied if I am using padding on the input box. 
How can I solve this issue?
* { margin: 0; padding: 0; }. This also means you have to style every HTML element. Suggestion: Use a CSS framework instead.