描述
::placeholder 伪元素表示 <input> 或 <textarea> 字段中的占位符文本。作为占位符的文本给出了需要在字段中输入的内容的提示。 CSS 属性可用于更改文本的外观,例如,设置字体和颜色。
只有应用于 ::first-line 伪元素的 CSS 属性子集才可以在选择器中使用 ::placeholder 在规则中使用。
语法
selector::placeholder {
/* ... */
}
辅助功能问题:
检查占位符文本颜色与输入背景之间的对比度非常重要。
如果颜色对比度很高,占位符文本可能会与输入的文本混淆。因此,为了避免这种混乱,您可以使用 aria-scribedby 属性来添加更接近的文本,从而向用户提供提示。
当用户输入文本时使用与占位符文本相同的样式呈现,在 Windows 高对比度模式下,很难区分占位符文本和输入的文本。
占位符不是替换 <label> 元素。辅助技术无法解析 <input> 元素。
CSS ::placeholder 示例
这里是 ::placeholder 伪代码的示例-element:
<html>
<head>
<style>
.form {
border: 2px solid black;
background: lightgray;
margin: 15px;
padding: 25px;
width: 250px;
}
input::placeholder {
color: grey;
font-style: italic;
background-color: cornsilk;
padding: 5px;
}
input {
margin-bottom: 3px;
}
</style>
</head>
<body>
<div class="form">
<input type="text" placeholder="First Name">
<input type="text" placeholder="Last Name">
<input type="text" placeholder="Address">
<input type="text" placeholder="Phone">
</div>
</body>
</html>
CSS 伪元素 ::placeholder: 不透明文本
此功能只能在 Firefox 上查看。
像 Firefox 这样的浏览器设置占位符的不透明度小于 100%。设置 opacity:1 以获取完全不透明的占位符文本,如以下示例所示:
<html>
<head>
<style>
input::placeholder {
color: blue;
padding: 5px;
}
.opaque-text::placeholder {
opacity: 1;
}
</style>
</head>
<body>
<h2>在Firefox浏览器上执行</h2>
<div class="form">
<input type="text" placeholder="默认不透明度">
<input type="text" class="opaque-text" placeholder="强制不透明">
</div>
</body>
</html>