我已经阅读了几篇有关在HTML5中使用::-webkit-input-placeholder
来样式化输入字段占位符的文章。它完美地工作,除了一个问题。
如果我尝试将字体大小增加到大于16px的值,文本就会在底部“被裁剪”。这无论输入本身的高度和填充如何都会发生。是否有人知道避免此问题的方法,可以使用纯CSS或JavaScript?
我添加了两个输入字段的截图,其中占位符的字体大小为20px。
Jsfiddle: https://jsfiddle.net/bvwdg86x/
我已经阅读了几篇有关在HTML5中使用::-webkit-input-placeholder
来样式化输入字段占位符的文章。它完美地工作,除了一个问题。
如果我尝试将字体大小增加到大于16px的值,文本就会在底部“被裁剪”。这无论输入本身的高度和填充如何都会发生。是否有人知道避免此问题的方法,可以使用纯CSS或JavaScript?
我添加了两个输入字段的截图,其中占位符的字体大小为20px。
Jsfiddle: https://jsfiddle.net/bvwdg86x/
input {
display: block;
width: 50vw;
padding: 0 1.25rem;
}
input,
input::placeholder {
font: 1.25rem/3 sans-serif;
}
<input type="text" placeholder="Example Input" />
问题中包含的截图显示占位符值被用作标签。这种技术可能对辅助技术用户不利,被认为是一种可访问性反模式。
来自W3C › WAI › Placeholder Research › Avoid use of placeholder values:
placeholder
属性不应作为标签的替代品。占位符是一个短提示,旨在帮助用户输入数据,因此它不应与标签元素相同。占位符可能无法被辅助技术使用,因此不能依赖它来传达可访问名称或描述--它类似于回退内容。
另请参阅:
占位符样式不会调整输入字段的大小,也不会影响其框模型。将字体大小添加到输入框中可以修复占位符被截断的问题。
您还可以考虑为其他浏览器添加占位符样式...
::-moz-placeholder {} /* Firefox 19+ */
:-moz-placeholder {} /* Firefox 18- */
:-ms-input-placeholder {} /* IE */
::placeholder{
overflow: visible;
}
input {
width: 450px;
padding: 0px 15px;
}
input,
input::-webkit-input-placeholder {
font-size: 25px;
line-height: 4;
}
<input type="text" placeholder="My Cool Placeholder Text">
::placeholder
CSS 伪元素。对于Chrome / Safari / Opera,使用::-webkit-input-placeholder(Chrome issue#623345)
对于Edge,使用::-ms-input-placeholder(还支持webkit前缀)
line-height
添加到它们中。通常通过从字体大小增加10px来设置行高。例如:32px对于22px的字体大小。 - Nanang Mahdaen El-Agung