调整HTML表单中标签元素的行高

时间:2011-06-05 21:54:21

标签: html label html-form css

我有一个包含<label>元素的表单,但<label>的两行之间的空格太大,我似乎无法调整{{的行高1}}。

以下是<label><label>的示例,两者都应用了相同的CSS。如您所见,<p>正确调整,而<p>保持不变。

http://jsfiddle.net/QYzPa/

CODE:

<label>
form label,
form p
{    
  font-weight:bold;
  line-height:.7em;
}

3 个答案:

答案 0 :(得分:42)

所有HTML标记都按照描述其性质的类别进行分类。这种分类可能与语义,行为,交互和许多其他方面有关。

plabel标记都归为“流内容”标记类别。但是之间存在一个细微差别:label标记也被归类为“短语内容”类别。

这在实践中意味着什么?浏览器默认呈现将遵循指定的标记分类,并将p标记视为块元素,而label标记默认情况下将被视为内联元素。您可以通过覆盖默认的CSS规则来修改它:只需告诉浏览器您希望label像块元素一样呈现。

label {
  display: block;
}

您需要这样做,因为内嵌元素(显示:内联)不能包含heightline-heightmargin-topmargin-bottom等属性(他们将被忽略)。

如果您希望内联元素具有高度属性但仍保持其内联行为(不会导致LINE BREAK),则可以将其声明为:

label{
 display:inline-block;
}

阅读HTML的文档总是好的。 Here is a nice graph showing the categories,它可以节省你很多时间,特别是在处理这些小怪癖时。

答案 1 :(得分:3)

我认为Marcio试图说的是inline元素(如span s或label s),它们可以在文本中一个接一个地存在,你可以' t指定适用于整个段落的属性。

显而易见的是text-align:段落应指定对齐而不是单个span。所以line-height等等。

inline元素相反的是block元素,例如divp,它们在页面上占据一个正方形并且在较高的位置之间相互布置块级。此行为由CSS属性display控制,可使div的行为与span相同,反之亦然。

答案 2 :(得分:1)

不完全确定原因,但如果您在标签上设置display: block;

,它将会有效