我在 CSS 中明确设置了元素的line-height
属性。<input>
但是当我在firebug中检查元素时,line-height
这个元素的值不是我在CSS中设置的。而且似乎 line-height 值与我在 CSS 中设置的无关。这可能的原因是什么?
3 回答
根据 CSS 2.1 规范中的定义line-height
,它对块容器元素有特定的含义,对不可替换的内联元素有不同的含义。我在那里找不到任何关于替换内联元素的声明,并且一个input
元素可以被视为替换元素,这有点值得商榷。
无论如何,看起来很奇怪,浏览器似乎忽略line-height
了input
元素。作为一种解决方法,您可以考虑设置height
属性或设置垂直填充。但是跨浏览器的结果并不一致。根据经验,我们应该期望文本输入框的呈现在浏览器的控制下,尽管在某些情况下可以使用 CSS 调整某些功能。
不确定这是否是重点,但我指定了边距、填充并去掉了边框,这里正好是 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;}
如果不是这样的话,我没有想法:)
lineheight 不会在 Firefox 中呈现,但我认为它会在 IE 中。有一个小技巧可以做,就是让 lineheight 样式呈现为块元素而不是内联元素。
例如:
这行不通
span {font-size:12px; line-height:14px}
但这将:
span {font-size:12px; line-height:14px; display:block;}