我想用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/>
分隔元素并获取空格,有更好的方法吗?
答案 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>