-2

我在 CSS 中明确设置了元素的line-height属性。<input>但是当我在firebug中检查元素时,line-height这个元素的值不是我在CSS中设置的。而且似乎 line-height 值与我在 CSS 中设置的无关。这可能的原因是什么?

4

3 回答 3

3

根据 CSS 2.1 规范中的定义line-height,它对块容器元素有特定的含义,对不可替换的内联元素有不同的含义。我在那里找不到任何关于替换内联元素的声明,并且一个input元素可以被视为替换元素,这有点值得商榷。

无论如何,看起来很奇怪,浏览器似乎忽略line-heightinput元素。作为一种解决方法,您可以考虑设置height属性或设置垂直填充。但是跨浏览器的结果并不一致。根据经验,我们应该期望文本输入框的呈现在浏览器的控制下,尽管在某些情况下可以使用 CSS 调整某些功能。

于 2012-04-21T16:34:35.597 回答
0

不确定这是否是重点,但我指定了边距、填充并去掉了边框,这里正好是 14px:http: //jsfiddle.net/mymlyn/Uq5Tt/2/

如果您检查开发工具(并且在指定上述内容之前)正好是 14px:

http://dl.dropbox.com/u/26827941/ScreenShot060.png(chrome开发工具) http://dl.dropbox.com/u/26827941/ScreenShot061.png(ff中的萤火虫)

您的情况的原因可能是您的输入字段具有指定的 id 或类,

<input id="someID"/> 

并且有类似的东西

input#someID {line-height: 20px;} 

在你的css其他地方,你可能试图通过设置来改变它的值

input {line-height: 14px;}

如果不是这样的话,我没有想法:)

于 2012-04-21T16:48:01.707 回答
-1

lineheight 不会在 Firefox 中呈现,但我认为它会在 IE 中。有一个小技巧可以做,就是让 lineheight 样式呈现为块元素而不是内联元素。

例如:

这行不通

span {font-size:12px; line-height:14px} 

但这将:

span {font-size:12px; line-height:14px; display:block;}
于 2012-04-21T05:47:25.863 回答