【问题标题】:css floating 2 inputfields in a formcss浮动表单中的2个输入字段
【发布时间】:2023-03-30 22:35:01
【问题描述】:

我在理解 css 时遇到以下问题。

我有一个注册表。在那种形式中,我使用了一个字段集。现在我想在每一行旁边放置两个输入字段。上面的每个字段也应该有一个标签。

所以我想要实现的是:

    label 1                         label 2
    _______________                 _______________ 
   (_______________)               (_______________)

    label 3                        label 4
    _______________                 _______________ 
   (_______________)               (_______________)

我是 CSS 新手,在理解 float 和 clear 方面有一些问题。

到目前为止,我的结构如下:

           _______________              
label 1   (_______________)             
           _______________              
label 2   (_______________) 
           _______________              
label 3   (_______________) 
           _______________              
label 4   (_______________) 

这是我的想法:

我将字段集设置为特定的高度和宽度:

fieldset { height: 330px; width: 550px;}

之后我为我的标签和输入设计设置信息:

label { font-family: Arial, Helvetica, sans-serif;
    font-size: 20px;
    font-weight: bold;
    color: #ECECEC;
    text-decoration: none;
    width: 100px;
}
input {
    width: 250px;
    height: 25px;
    color:#bababa;
    padding:5px;
    font-size: 12px;
    -moz-border-radius: 6px;  
}

到目前为止的设计。现在我想,由于旁边的 2 个列,我想实现它需要每一个都浮动。所以我建立了这两个类:

.fl { float: left; margin-bottom:15px;}
.fd { clear: left; margin-bottom:15px;}

在类 fl float 中意味着将 box1 设置为浮动属性,即 box2 将位于它的左侧。 fd 类将用于下一行。这样 box3 将分成另一行。边距只是为了在每个字段之间保留一些空间。

在我的 html 中,我得到了这个代码:

<form>
<fieldset>
<legend>Headline for fieldset</legend>
<ul>

<li class="fl">
<label for="label1">label 1</label>
<input type="text" id="label1" name="label1" tabindex="10" autocomplete="off">
</li>

<li class="fl">
<label for="label2">label2</label>
<input type="text" id="label2" name="label2" tabindex="20" autocomplete="off">
</li>

<li class="fd">
<label for="label3">label3</label>
<input type="text" id="label3" name="label3" tabindex="30" autocomplete="off">
</li>

<li class="fl">
<label for="label4">label4</label>
<input type="text" id="label4" name="label4" tabindex="40" autocomplete="off">
</li>

</ul>
</fieldset>
</form>

所以我有以下问题:

1。 我如何才能将标签放置在输入字段上方?

2。 我怎样才能达到将它们放在旁边的主要目标?

3。 如何调整一行输入字段之间的间距?

如果有人可以帮助我,我将不胜感激。非常感谢。

【问题讨论】:

  • 创建一个表,并排列它们?
  • 更喜欢使用 css。我想发展自己。谢谢

标签: html css forms css-float fieldset


【解决方案1】:

我想这就是你想要的:

fieldset { 
    height: 330px; 
    width: 580px;
}

label { 
    font-family: Arial, Helvetica, sans-serif;
    font-size: 20px;
    font-weight: bold;
    color: #ECECEC;
    text-decoration: none;
    width: 100px;
    display: block;
}
input {
    width: 250px;
    height: 25px;
    color:#bababa;
    padding:5px;
    font-size: 12px;
    -moz-border-radius: 6px;
    margin-right: 15px;
}

.fl, .fd { 
    float: left; 
    margin-bottom:15px;
 }

编辑:工作示例:http://jsfiddle.net/7hMCN/

【讨论】:

  • 绝对不是......你只是把 fl。和 fd。归为一类。标签呢?谢谢。
  • 这段代码完全符合您的要求。标签放置在输入字段上方。实现了将两个输入字段并排放置的主要目标。如果您想将其分开,只需在输入字段中添加 margin-right 即可。
  • 似乎是我在使用 Dreamweaver 时遇到问题。当我在实时取景中时,我看不到任何变化。 codeview 使它应该如何做。正确的顺序只是有一些问题,第一项没有改变。抱歉。谢谢回答
  • Dreamweaver 实时预览不可靠。总是在浏览器中测试。我已经更新了我的答案并将这段代码放在小提琴上,这样你就可以看到它了。
  • 好的,很高兴知道。似乎您已经更改了字段集的宽度。这似乎是个问题,因为字段集集成在宽度为 550 像素、高度为 420 像素的外部 div 中。这就是为什么它列出了我猜的字段?
【解决方案2】:

在列表中使用表单控件存在一些语义问题。但最简单的解决方案是将每个&lt;label&gt;&lt;input&gt; 组合包装在&lt;div&gt; 中,然后定位&lt;div&gt;。使用 as table 是一种非常古老的方法。

CSS

form div.left {
 width: 20%;
 float: left;
 display: inline;
 }
form div.right {
 width: 20%;
 float: right;
 display: inline;
 }

HTML

<form>
<div class="left"><label for="one">Label one</label><br>
<input id="one"></div>
<div class="right"><label for="two">Label two</label><br>
<input id="two"></div>

如果您不想使用&lt;br&gt;,例如将&lt;label&gt;&lt;input&gt; 包装在一个跨度中并定位它,您可能会觉得很有趣。你能扩展问题 3 吗?

【讨论】:

    【解决方案3】:

    问题 1 [和 2?])我添加了 &lt;br /&gt; 新行元素(您可以让标签向左浮动或更改 display:block;)。

    问题3)我使用:nth-of-type(odd)并添加了一个margin-right

    Fiddle example here

    【讨论】:

      猜你喜欢
      • 2017-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-16
      • 2016-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多