我想出了两种不同的解决方案。
第一个解决方案使用jQuery动态调整输入大小以匹配隐藏的<span>
元素的输入大小。这样,你就不必猜测角色或类似的东西的“平均大小”。
$("body").keydown(function(e){
setTimeout(function(){
if(e.which == 32){
$("#clone").append(" ");
}
$("#clone").text($('input').val());
$('input').width($("#clone").width() + 40);
}, 100);
});
参见:https://jsfiddle.net/pz0f5bam/
的第二个解决方案更加公正CSS。我首先将输入宽度设置为100%,这样您就不必担心它的宽度太小。然后,如果您将text-decoration: underline;
添加到输入,它看起来像在增长。
我还向占位符添加了样式,使其看起来像具有最小尺寸。
input{
width: 100%;
font-size: 40px;
text-decoration: underline;
background-color: transparent;
outline: none;
border: none;
}
::-webkit-input-placeholder {
text-decoration: underline;
color: black;
}
参见:https://jsfiddle.net/vrodL180/
问题是placholder在Chrome中不加下划线?原因是文字。 – skobaljic