我有神经炎吗?我应该在DIV中附上什么?

时间:2010-09-23 08:53:15

标签: css

我正在编写像这样的东西

<div class="panel">
<fieldset style="position: absolute; top:8px; left: 136px; width: 136px; height: 64px;">
  <legend> </legend>
  <div class="Label" id="Label1" style="position: absolute; top:8px; left: 16px; width: 81px; height: 14px;">one</div>    
  <div class="TLabel" id="Label2" style="position: absolute; top:32px; left: 16px; width: 54px; height: 14px;">two</div>    
</fieldset>
</div>

我是否甚至需要围绕字段集(或文本输入框,广播组,其他表单输入元素?)的DIV?

5 个答案:

答案 0 :(得分:3)

呃...不。您不必在div周围添加fieldset

鉴于在您的示例中,根本没有表单元素 ,为什么这甚至应该是一个表单?好的,我从你之前的问题中知道你正在尝试构建一个WYSIWYG表单编辑器,但这并不是使用这些HTML的借口。

如果我清理你正在使用的例子,它可能看起来像:

<fieldset style="top:8px; left: 136px; width: 136px; height: 64px;">
  <label class="Label" id="Label1" style="top:8px; left: 16px;">one</label>    
  <label class="TLabel" id="Label2" style="top:32px; left: 16px;">two</label>    
</fieldset>

由于某些样式不止一次被应用,我认为将它们存储在样式表中是合适的。

fieldset, label {
    position: absolute;
}

您也不需要在标签上设置明确的宽度和高度,特别是如果您没有任何形式的边框或背景。

逻辑上,您还应该将label - input对组合在一起,例如使用无序列表。请注意,对于辅助功能,您需要for属性指向正确的input元素。最好提一下你在这里做的事情。

答案 1 :(得分:1)

  

我是否甚至需要围绕字段集(或文本输入框,广播组,其他表单输入元素?)的DIV?

只有你自己才能知道这一点。但总的来说,没有。为什么不直接将样式应用于元素?围绕所有这些元素的<div>肯定似乎过多,仅在极少数情况下是必要的。

特别是,表单上的标签应为<label> s!始终使用语义上“正确”的标记,而不是像<span><div>这样的非特定标记。

答案 2 :(得分:1)

您可以使用无序列表来显示表单元素。

这对我来说不是太糟糕(除了令人讨厌的内联绝对定位 - Dreamweaver对吧?)

但那真的很好。

除了你知道有一个<label>元素吗?

将一个类应用于,你可以消除这两个额外的div

<div class="panel">
<fieldset style="position: absolute; top:8px; left: 136px; width: 136px; height: 64px;">
  <legend> </legend>
  <label class="Label" id="Label1" style="position: absolute; top:8px; left: 16px; width: 81px; height: 14px;">one</label> 
  <label class="TLabel" id="Label2" style="position: absolute; top:32px; left: 16px; width: 54px; height: 14px;">two</label>    
</fieldset>
</div>
Divitis(IMO)更严重,如:

<div class="content">
<div class="content-body">
<div class="content-start">
<div class="title">The Title</div>
    <div class="theauthor">The Author</div>
    <div class="thedate"><div class="day">Thursday</div> 10th December</div>
</div>
</div>
</div>

答案 3 :(得分:1)

不,你不需要围绕这些元素的div - 如果你想手动定位它们,你可以直接使用元素。另外,如果您需要标签,为什么不使用<label> - 标签?

答案 4 :(得分:1)

这取决于您尝试使用布局实现的目标。我们能看到你想要做什么吗?

您当然希望删除内联样式,例如:

style="position: absolute; top:8px; left: 136px; width: 136px; height

将所有内容放在CSS文件中。