css 占位符字体大小大于16px

ej83mcc0  于 2022-12-30  发布在  其他
关注(0)|答案(5)|浏览(120)

我读过几篇关于在HTML5中使用::-webkit-input-placeholder对输入字段的占位符进行样式化的文章。它工作得很完美,除了一件事。
如果我试图增加字体大小到大于16px的值,文本会在底部被“剪切”。不管输入本身的高度和填充如何,都会发生这种情况。有人知道避免这个问题的方法吗,使用纯CSS或JavaScript?
我添加了两个inputfield的屏幕截图,其中占位符的字体大小为20px

小提琴:https://jsfiddle.net/bvwdg86x/

jslywgbw

jslywgbw1#

输入及其占位符必须具有匹配的字体样式

input {
    display: block;
    width: 400px;
    padding: 0 20px;
}

input,
input::placeholder {
    font: 20px/3 sans-serif;
}
<input type="text" placeholder="Example Input">

关于占位符可访问性的说明

问题中包含的屏幕截图显示占位符值被用作标签。此技术可能会给辅助技术用户带来问题,并被视为可访问性反模式。

  • 摘自W3C › WAI ›占位符研究›避免使用占位符值 *:

placeholder属性不应用作标签的替代项。占位符是一个简短的提示,旨在帮助用户输入数据,因此不应与标签元素相同。占位符可能不可用于辅助技术,因此不能依赖它来传达可访问的名称或说明-它的作用类似于回退内容。
另见:

wbgh16ku

wbgh16ku2#

占位符样式不会调整输入字段的大小,也不会影响其框模型。请在输入中添加字体大小以修复占位符,防止其被截断。
您也可以考虑为其他浏览器添加占位符样式...

::-moz-placeholder {} /* Firefox 19+ */
:-moz-placeholder {}  /* Firefox 18- */
:-ms-input-placeholder {} /* IE */
xkftehaa

xkftehaa3#

您必须添加“溢出:visible'到css中的占位符以消除裁剪。

::placeholder{
overflow: visible;
}
ctzwtxfj

ctzwtxfj4#

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">
djp7away

djp7away5#

同时,浏览器供应商实现了::placeholder CSS伪元素。
您可以在caniuse.com上找到浏览器兼容性的当前状态。
目前(2019-04-29)有以下注解:
::-网页工具包输入-Chrome/Safari/Opera浏览器的占位符(Chrome issue #623345
::-ms-input-Edge的占位符(也支持webkit前缀)

相关问题