【发布时间】:2017-10-04 12:37:43
【问题描述】:
https://codepen.io/stoplion/pen/bWoPLP
我尝试了多种方法来让这个占位符的背景看起来不像一个显示块(将其位置设置为绝对,设置它的宽度),但似乎没有任何效果。
知道如何让背景“拥抱”文本,就像在内联元素中一样?
@mixin optional-at-root($sel) {
@at-root #{if(not &, $sel, selector-append(&, $sel))} {
@content;
}
}
@mixin placeholder {
@include optional-at-root('::-webkit-input-placeholder') {
@content;
}
@include optional-at-root(':-moz-placeholder') {
@content;
}
@include optional-at-root('::-moz-placeholder') {
@content;
}
@include optional-at-root(':-ms-input-placeholder') {
@content;
}
}
input {
padding: 10px;
width: 400px;
}
input {
@include placeholder {
transform: translateX(-9px);
background-color: rgba(29, 146, 237, 0.15);
padding: 5px 5px;
color: #333;
float: left;
width: 20px;
}
}
编辑
检查 shadow dom 元素.. input::-webkit-input-placeholder 似乎得到了 display: block !important;
更好的问题是..
如何将-webkit-input-placeholder 改为内联元素?
【问题讨论】:
-
这是你想要的:只为占位符文本提供背景色,而不是整个输入?是 X-Y 问题 (xyproblem.info) 吗?因为它带来的用户体验对我来说似乎不合适。如果这确实是您想要的,JavaScript 解决方案是否可以接受?
标签: css google-chrome placeholder