У меня есть форма HTML, которая является в основном вертикальной, но я действительно понятия не имею, как сделать два текстовых поля на той же строке. Например, следующая форма ниже я хочу Имя и фамилию на той же строке скорее затем одна ниже другого.
<form action="/users" method="post"><div style="margin:0;padding:0">
<div>
<label for="username">First Name</label>
<input id="user_first_name" name="user[first_name]" size="30" type="text" />
</div>
<div>
<label for="name">Last Name</label>
<input id="user_last_name" name="user[last_name]" size="30" type="text" />
</div>
<div>
<label for="email">Email</label>
<input id="user_email" name="user[email]" size="30" type="text" />
</div>
<div>
<label for="pass1">Password</label>
<input id="user_password" name="user[password]" size="30" type="password" />
</div>
<div>
<label for="pass2">Confirm Password</label>
<input id="user_password_confirmation" name="user[password_confirmation]" size="30" type="password" />
</div>
Стиль отображения по умолчанию для div - «блок». Это означает, что каждый новый div будет ниже предыдущего.
Вы можете:
Отменить стиль потока, используя float, как предлагает @Sarfraz.
или
Измените свой html, чтобы использовать что-то отличное от div для элементов, которые вы хотите разместить в той же строке. Я предлагаю вам просто опустить div для поля "last_name"
<form action="/users" method="post"><div style="margin:0;padding:0">
<div>
<label for="username">First Name</label>
<input id="user_first_name" name="user[first_name]" size="30" type="text" />
<label for="name">Last Name</label>
<input id="user_last_name" name="user[last_name]" size="30" type="text" />
</div>
... rest is same
Я бы выбрал решение Ларри К., но вы также можете установить отображение на inline-block , если вам нужны преимущества как блочных, так и встроенных элементов.
Вы можете сделать это в теге div, вставив:
style="display:inline-block;"
Или в таблицу стилей CSS с помощью этого метода:
div { display:inline-block; }
Надеюсь, это поможет, но, как упоминалось ранее, я лично выбрал бы решение Ларри К.; -)
Поместите style = "float: left"
в каждый из ваших div:
<div style="float:left;">...........
Пример:
<div style="float:left;">
<label for="username">First Name</label>
<input id="user_first_name" name="user[first_name]" size="30" type="text" />
</div>
<div style="float:left;">
<label for="name">Last Name</label>
<input id="user_last_name" name="user[last_name]" size="30" type="text" />
</div>
Чтобы поместить элемент в новую строку, поместите этот div под ним:
<div style="clear:both;"> </div>
Конечно , вы также можете создавать классы в файле CSS:
.left{
float:left;
}
.clear{
clear:both;
}
И тогда ваш html должен выглядеть так:
<div class="left">
<label for="username">First Name</label>
<input id="user_first_name" name="user[first_name]" size="30" type="text" />
</div>
<div class="left">
<label for="name">Last Name</label>
<input id="user_last_name" name="user[last_name]" size="30" type="text" />
</div>
Чтобы поместить элемент в новую строку, поместите этот div под ним:
<div class="clear"> </div>
Подробнее: