Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to align input and select form elements in one row

Tags:

css

alignment

How can I align the input and select form elements in my test case, so that their horizontal borders are aligned and all text including labels is aligned to the baseline?

I want to have a label and an input form element along with another label and a select form element in one row. Therefore I want to have horizontal borders of select and input elements aligned, and I also want to have all text including labels aligned to the baseline. Is it possible?

I was unable to achieve it on IE8 or FF on Win. I tried box-sizing: border-box; to force input and select to be rendered using the same box model.

See my test case, which has this code:

<form action="Submit" method="post">
    <p>
        <label>Sex<select><option value="" selected="selected">Sex</option></select></label>
        <label>Date of Birth<input type="text" value="Date of Birth" /></label>
    </p>
</form>
body, input, select {
    font-family: Helvetica,Arial,sans-serif;
    font-size: 12px;
}

select, input {
    height: 20px;
    padding: 0;
    margin: 0;
    border: 1px solid gray;
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
}

label {
    padding: 0;
    margin: 0;
}
like image 444
Michal Čizmazia Avatar asked Dec 13 '22 18:12

Michal Čizmazia


1 Answers

I suggest adding this style to the select and input elements:

vertical-align: bottom;

You can add padding to the select element. However, you will get some whitespace around the drop-down arrow. 2px should be okay, but play around with it. This should help with the text baselines.

like image 183
esther h Avatar answered Dec 15 '22 07:12

esther h