如何使用CSS在两个<input />行之间添加空格?

时间:2009-12-13 13:52:51

标签: html css layout

我想用CSS控制布局。如何使用CSS来调节<input>元素之间的空格(我希望它们在两行上)?

<form name="publish" id="publish" action="publishprocess.php" method="post">
  Title:<input type="text" id="title" name="title" size="60" maxlength="110" value="<?php echo $title ?>" <br/>
  <div>Contact<input type="text" id="contact" name="contact" size="24" maxlength="30" value="<?php echo $contact ?>" /></div><br/> Task description(You may include task description, requirements on bidders, time requirements,etc):<br/>
  <textarea name="detail" id="detail" rows="7" cols="60" style="font-family:Arial, Helvetica, sans-serif"><?php echo $detail ?></textarea>

  <br/><br/> price <input type="text" id="price" name="price" size="10" maxlength="20" value="<?php echo $price ?>" /><br/>
  <label> Skill or Knowledge Tags</label><br/><input class="tagvalidate" type="text" id="tag" name="tag" size="40" maxlength="60" value="<?php echo $tag ?>" />
  <br/><label>Combine multiple words into single-words, space to separate up to 3 tags<br/>(Example:photoshop quantum-physics computer-programming)</label><br/><br/> District Restriction:
  <?php echo $locationtext.$cityname; ?><br/><br/>

  <input type="submit" id="submit" value="submit" /></form>

如您所见,我使用<br/>分隔元素并获取空格,有更好的方法吗?

7 个答案:

答案 0 :(得分:13)

#detail {margin-bottom:5px;}

答案 1 :(得分:4)

您还可以将文本包装在标签字段中,这样您的表单在语义上就会更易于自我解释。

请记住将标签和输入浮动到左侧,并为它们添加特定的宽度,以及包含的形式。然后你可以为它们添加边距,以调整线条之间的间距(当然,你理解这是一个非常小的标记,期望内容大到某个限制)。

这样你就不必再添加任何元素,只需添加标签输入对,所有元素都包含在表单元素中。

例如:

<form>
<label for="txtName">Name</label>
<input id"txtName" type="text">
<label for="txtEmail">Email</label>
<input id"txtEmail" type="text">
<label for="txtAddress">Address</label>
<input id"txtAddress" type="text">
...
<input type="submit" value="Submit The Form">
</form>

css将是:

form{
float:left; /*to clear the floats of inner elements,usefull if you wanna add a border or background image*/
width:300px;
}
label{
float:left;
width:150px;
margin-bottom:10px; /*or whatever you want the spacing to be*/
}
input{
float:left;
width:150px;
margin-bottom:10px; /*or whatever you want the spacing to be*/
}

答案 2 :(得分:2)

CSS:

form div {
  padding: x; /*default div padding in the form e.g. 5px 0 5px 0*/
  margin: y; /*default div padding in the form e.g. 5px 0 5px 0*/
}
.divForText { /*For Text line only*/
  padding: a;
  margin: b;
}
.divForLabelInput{ /*For Text and Input line */
  padding: c;
  margin: d;
}
.divForInput{ /*For Input line only*/
  padding: e;
  margin: f;
}

HTML:

<div class="divForText">some text</div>
<input ..... />
<div class="divForLabelInput">some label <input ... /></div>
<div class="divForInput"><input ... /></div>

答案 3 :(得分:1)

#input {
    margin:0 0 10px 0;
}

答案 4 :(得分:0)

尝试尽可能减少<br>的使用量。 HTML应该包含内容和结构,<br>不是。一个简单的解决方法是将输入元素包装在<p>元素中,如下所示:

<form name="publish" id="publish" action="publishprocess.php" method="post">

    <p><input type="text" id="title" name="title" size="60" maxlength="110" value="<?php echo $title ?>" /> - Title</p>
    <p><input type="text" id="contact" name="contact" size="24" maxlength="30" value="<?php echo $contact ?>" /> - Contact</p>

    <p>Task description (you may include task description, requirements on bidders, time requirements, etc):</p>
    <p><textarea name="detail" id="detail" rows="7" cols="60" style="font-family:Arial, Helvetica, sans-serif"><?php echo $detail ?></textarea></p>

    <p><input type="text" id="price" name="price" size="10" maxlength="20" value="<?php echo $price ?>" /> - Price</p>

    <p><input class="tagvalidate" type="text" id="tag" name="tag" size="40" maxlength="60" value="<?php echo $tag ?>" /> - Skill or Knowledge Tags</p>
    <p>Combine multiple words into single-words, space to separate up to 3 tags (example:photoshop quantum-physics computer-programming)</p>

    <p>District Restriction:<?php echo $locationtext.$cityname; ?></p>

    <p><input type="submit" id="submit" value="Submit" /></p>
</form>

答案 5 :(得分:0)

您无需在DIV中包装所有内容以在输入上实现基本样式。

输入[type =“text”] {margin:0 0 10px 0;}

在大多数情况下,

会做到这一点。

在语义上,一个&lt; br /&gt;标签在元素之间可以定位它们。当你发现自己使用多个&lt; br /&gt;(它们是语义元素)来实现美化效果时,这是一个混合责任的旗帜,你应该考虑回归基础。

答案 6 :(得分:0)

您可以将它们格式化为表格!!

form {
  display: table;
}
label {
  display: table-row;
}
input {
  display: table-cell;
}
p1 {
  display: table-cell;
}
<div id="header_order_form" align="center">
  <form id="order_header" method="post">
    <label>
      <p1>order_no:
        <input type="text">
      </p1>
      <p1>order_type:
        <input type="text">
      </p1>
    </label>
    </br>
    </br>
    <label>
      <p1>
        creation_date:
        <input type="text">
      </p1>
      <p1>delivery_date:
        <input type="text">
      </p1>
      <p1>billing_date:
        <input type="text">
      </p1>
    </label>
    </br>
    </br>

    <label>
      <p1>sold_to_party:
        <input type="text">
      </p1>
      <p1>sop_address:
        <input type="text">
      </p1>
    </label>
  </form>
</div>