我有一个包含<label>
元素的表单,但<label>
的两行之间的空格太大,我似乎无法调整{{的行高1}}。
以下是<label>
和<label>
的示例,两者都应用了相同的CSS。如您所见,<p>
正确调整,而<p>
保持不变。
CODE:
<label>
form label,
form p
{
font-weight:bold;
line-height:.7em;
}
答案 0 :(得分:42)
所有HTML标记都按照描述其性质的类别进行分类。这种分类可能与语义,行为,交互和许多其他方面有关。
p
和label
标记都归为“流内容”标记类别。但是之间存在一个细微差别:label
标记也被归类为“短语内容”类别。
这在实践中意味着什么?浏览器默认呈现将遵循指定的标记分类,并将p
标记视为块元素,而label
标记默认情况下将被视为内联元素。您可以通过覆盖默认的CSS规则来修改它:只需告诉浏览器您希望label
像块元素一样呈现。
label {
display: block;
}
您需要这样做,因为内嵌元素(显示:内联)不能包含height
,line-height
,margin-top
,margin-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
元素,例如div
或p
,它们在页面上占据一个正方形并且在较高的位置之间相互布置块级。此行为由CSS属性display
控制,可使div
的行为与span
相同,反之亦然。
答案 2 :(得分:1)
不完全确定原因,但如果您在标签上设置display: block;