带有并排输入字段的HTML表单

带有并排输入字段的HTML表单,html,css,forms,Html,Css,Forms,我有一个基本垂直的html表单,但我真的不知道如何在同一行上创建两个文本字段。例如,下面的表格我希望名字和姓氏在同一行,而不是在另一行下面 <form action="/users" method="post"><div style="margin:0;padding:0"> <div> <label for="username">First Name</label>

我有一个基本垂直的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>
    <label for="username">First Name</label>
    <input id="user_first_name" name="user[first_name]" size="30" type="text" />
    <input id="user_last_name" name="user[last_name]" size="30" type="text" />
</div>

名字
姓
电子邮件
密码
确认密码
style=“float:left”
放在每个div上:

<div style="float:left;">...........
<div>
    <label for="username">First Name</label>
    <input id="user_first_name" name="user[first_name]" size="30" type="text" />
    <input id="user_last_name" name="user[last_name]" size="30" type="text" />
</div>
然后您的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>
    <label for="username">First Name</label>
    <input id="user_first_name" name="user[first_name]" size="30" type="text" />
    <input id="user_last_name" name="user[last_name]" size="30" type="text" />
</div>

名字
姓
要在新行中放置元素,请将此div置于其下方:

<div style="clear:both;">&nbsp;</div>
<div class="clear">&nbsp;</div>
<div>
    <label for="username">First Name</label>
    <input id="user_first_name" name="user[first_name]" size="30" type="text" />
    <input id="user_last_name" name="user[last_name]" size="30" type="text" />
</div>

更多信息:

<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>
    <label for="username">First Name</label>
    <input id="user_first_name" name="user[first_name]" size="30" type="text" />
    <input id="user_last_name" name="user[last_name]" size="30" type="text" />
</div>

div的默认显示样式为“block”。这意味着每个新div将位于前一个div之下

<div>
    <label for="username">First Name</label>
    <input id="user_first_name" name="user[first_name]" size="30" type="text" />
    <input id="user_last_name" name="user[last_name]" size="30" type="text" />
</div>
你可以:

<div>
    <label for="username">First Name</label>
    <input id="user_first_name" name="user[first_name]" size="30" type="text" />
    <input id="user_last_name" name="user[last_name]" size="30" type="text" />
</div>
按照@Sarfraz的建议,使用float覆盖流样式

<div>
    <label for="username">First Name</label>
    <input id="user_first_name" name="user[first_name]" size="30" type="text" />
    <input id="user_last_name" name="user[last_name]" size="30" type="text" />
</div>

<div>
    <label for="username">First Name</label>
    <input id="user_first_name" name="user[first_name]" size="30" type="text" />
    <input id="user_last_name" name="user[last_name]" size="30" type="text" />
</div>
将html更改为在同一行中使用除div之外的其他元素。我建议您在“姓氏”字段中省略div

<div>
    <label for="username">First Name</label>
    <input id="user_first_name" name="user[first_name]" size="30" type="text" />
    <input id="user_last_name" name="user[last_name]" size="30" type="text" />
</div>

名字
姓
... 其余的都一样

我同意Larry K的解决方案,但是如果您想同时利用块和内联元素的优点,也可以将显示设置为内联块

<div>
    <label for="username">First Name</label>
    <input id="user_first_name" name="user[first_name]" size="30" type="text" />
    <input id="user_last_name" name="user[last_name]" size="30" type="text" />
</div>
可以通过插入以下内容在div标记中执行此操作:

style="display:inline-block;"
<div>
    <label for="username">First Name</label>
    <input id="user_first_name" name="user[first_name]" size="30" type="text" />
    <input id="user_last_name" name="user[last_name]" size="30" type="text" />
</div>
或者在使用此方法的CSS样式表中:

div { display:inline-block; }
<div>
    <label for="username">First Name</label>
    <input id="user_first_name" name="user[first_name]" size="30" type="text" />
    <input id="user_last_name" name="user[last_name]" size="30" type="text" />
</div>

希望有帮助,但如前所述,我个人支持拉里·K的解决方案;-)

为了节省带宽,我们不应该为
对中的每一个都包含

<div>
    <label for="username">First Name</label>
    <input id="user_first_name" name="user[first_name]" size="30" type="text" />
    <input id="user_last_name" name="user[last_name]" size="30" type="text" />
</div>
此解决方案可能更好地为您服务,并可能增加可读性

<div class="form">
            <label for="product_name">Name</label>
            <input id="product_name" name="product[name]" size="30" type="text" value="4">
            <label for="product_stock">Stock</label>
            <input id="product_stock" name="product[stock]" size="30" type="text" value="-1">
            <label for="price_amount">Amount</label>
            <input id="price_amount" name="price[amount]" size="30" type="text" value="6.0">
</div>
<div>
    <label for="username">First Name</label>
    <input id="user_first_name" name="user[first_name]" size="30" type="text" />
    <input id="user_last_name" name="user[last_name]" size="30" type="text" />
</div>
我相信结果如下:

<div>
    <label for="username">First Name</label>
    <input id="user_first_name" name="user[first_name]" size="30" type="text" />
    <input id="user_last_name" name="user[last_name]" size="30" type="text" />
</div>

您应该将姓氏的输入放在您有名字的同一个div中

<div>
    <label for="username">First Name</label>
    <input id="user_first_name" name="user[first_name]" size="30" type="text" />
    <input id="user_last_name" name="user[last_name]" size="30" type="text" />
</div>

您可以使用{display:inline flex;} 这将产生以下结果:

或者更好的做法是创建一个定义中包含float:left的类。@Dan Diplo:在看到此注释之前完成:)您也可以将第二个标签和输入字段移动到与第一个相同的div中-如果不进行垂直分隔,则无需将它们分隔为单独的div,霍尔斯克:这是个好主意,但是单独的职业可以让他使用浮点数将元素定位在准确的位置。但这取决于OP。同意-这始终取决于您实际试图通过布局实现的目标。就我个人而言,我宁愿在这些情况下使用span而不是div,因为这就是它们的设计目的;如果不希望具有块渲染行为,则首先不要使用块元素。不过,和往常一样,给这只猫剥皮有很多不同的方法。
<div>
    <label for="username">First Name</label>
    <input id="user_first_name" name="user[first_name]" size="30" type="text" />
    <input id="user_last_name" name="user[last_name]" size="30" type="text" />
</div>