占位符文本溢出:IE10中的省略号无效

时间:2014-06-30 08:11:46

标签: html css placeholder

如果文本长度在占位符中更多,我使用下面的代码显示省略号。 它在Chrome和Firefox中运行良好。在IE中,它不起作用。

input[placeholder] {
    text-overflow:ellipsis;
}

3 个答案:

答案 0 :(得分:1)

我遇到了同样的问题并遇到了this blog post from Front End Tricks And Magic,对我有用。博客的要点是,您可以在IE中的输入中进行省略,但前提是输入具有只读属性。

显然,在许多情况下,我们不希望输入具有只读属性。在这种情况下,您可以使用JavaScript来切换它。此代码直接来自博客,因此如果您发现此答案有帮助,您可以考虑查看博客并向作者留下评论。

HTML:

<div class="long-value-input-container">
  <input type="text" 
    value="sdghkjsdghhjdfgjhdjghjdfhghjhgkdfgjnfkdgnjkndfgjknk" class="long-
    value-input" readonly />
</div> 

CSS:

.long-value-input {
  width: 200px;
  height: 30px;
  padding: 0 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

JavaScript(使用jQuery)

// making the input editable
$( '.long-value-input' ).on( 'click', function() {
  $( this ).prop( 'readonly', '' );
  $( this ).focus();
})

// making the input readonly
$( '.long-value-input' ).on( 'blur', function() {
  $( this ).prop( 'readonly', 'readonly' );
});

答案 1 :(得分:0)

CSS-tricks:“文本溢出仅在容器的overflow属性具有隐藏值时滚动,或者自动和白色空间:nowrap;。

尝试添加此内容:

input[placeholder] {
    overflow: hidden;  
    text-overflow:ellipsis;
    white-space: nowrap;
}

答案 2 :(得分:0)

代码在这里:

$('input[type=text]').attr('readonly', 'readonly')
.blur(function () {
   $(this).attr('readonly', 'readonly');
}).focus(function () {
   $(this).removeAttr('readonly');
});

对我有用。