我有一个带有占位符的输入元素,需要使用CSS省略号。当输入没有焦点时,省略号可以正常工作,但是当我单击输入字段时,省略号消失,我看到完整的占位符。我该如何防止这种情况发生?
我有一个带有占位符的输入元素,需要使用CSS省略号。当输入没有焦点时,省略号可以正常工作,但是当我单击输入字段时,省略号消失,我看到完整的占位符。我该如何防止这种情况发生?
text-overflow: ellipsis;
不适用 - 它是块级别的,因为它的本质(它需要多大就有多大),所以不能认为占位符已经溢出其容器。用 !important 覆盖
&[placeholder] {
overflow: hidden;
text-overflow:ellipsis !important;
white-space: nowrap;
}
&::placeholder {
overflow: hidden;
text-overflow:ellipsis !important;
white-space: nowrap;
}
在这里查看工作示例,已在Chromium中进行测试:http://jsfiddle.net/Lptt36ar/9/
!important
在 CSS 中始终是覆盖的最糟糕选项。 - Toni Leigh!important
,它是有效的CSS,并不是最糟糕的选择,但在某些情况下,当你需要覆盖用户代理CSS时,可以将其作为最后的选择。 - Bartezz编辑:啊哈,在Firefox中可以正常工作,但在Chrome中无法正常工作。
真正奇怪的是,在fiddle中确实可以正常工作。我将输入框的宽度设置为20%,因此如果您调整屏幕大小,可以看到占位符被截断并替换为省略号。即使它获得了焦点。
但由于某种原因,我无法在我的应用程序中复制这个问题。一旦我聚焦输入,整个占位符就会显示出来。有人知道可能是什么原因吗?
http://jsfiddle.net/Lptt36ar/23/
SCSS
input {
display: inline-block;
margin: 0;
outline-color: rgb(0, 0, 0);
outline-offset: 0px;
outline-style: dashed;
outline-width: 1px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
width: 20%;
&[placeholder] {
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
}
&::placeholder {
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
}
}
.box:focus
{text-overflow: ellipsis;} 也没有帮助。 - random_stuff