【发布时间】:2016-01-16 01:49:13
【问题描述】:
我正在尝试使用值设置文本输入的样式,使用占位符和跨度设置文本输入的样式,在 Chrome 中也是如此。具体来说,我想独立于字体大小来控制行高。
但是,输入值似乎有某种最小行高(或引起类似影响的东西),这似乎会以某种方式将文本向下推,从而阻止相同的样式。
示例 HTML:
<div>
<input type="text" value="Text">
<input type="text" placeholder="Text">
<span>Text</span>
</div>
CSS:
div {
line-height: 50px;
font-family: Arial;
}
input,
span {
font-size: 50px;
line-height: 50px;
height: 50px;
width: 100px;
padding: 0;
min-height: 0;
display: inline-block;
font-family: inherit;
border: 2px solid red;
overflow: hidden;
vertical-align: top;
}
结果可见
http://plnkr.co/edit/oHbhKDSPTha8ShWVOC7N?p=preview 在 Linux 上的 Chrome 44.0.2403.155(64 位)的以下屏幕截图中:
奇怪的是,占位符的样式似乎具有所需的行高,而输入的文本值的位置不同。我现在不关心占位符的颜色。
如何设置所有 3 个元素的样式,使文本位于相同的位置,我正在使用自定义行高?
我知道我可以将 line-height 设置为 normal 或 1.2,或减小字体大小,以使元素看起来相同,但它们不会具有我正在寻找的视觉外观。
【问题讨论】:
-
问题似乎源于
line-height不知何故——尝试line-height:56px,它就消失了,而line-height:26px例如显着增加它……可能是干扰其他属性——我试图查看“计算”选项卡中的所有-webkit-*值,但到目前为止我无法发现任何显着差异。 -
我在原始 plunkr 示例中注意到的另一件事 - 当您单击第一个文本字段时,插入符号光标出现在字母之间,然后移动插入符号 f.e。通过左/右键,然后文本向上移动一点点 - 你能确认吗?
-
@CBroe 是的,然后它向上移动一两个像素
-
如果你显着增加
line-height,告诉66px——那么这个效果(移动插入符号时)会变得更加强大。看起来可能会执行某种“自动居中”……? -
是否特别需要设置行高??为什么你不能省略行高并用填充替换它们? @MichalCharemza 使用填充为每个对象创建相同的效果:Plunker
标签: html css google-chrome