CSS - 伪元素 - ::placeholder



描述

::placeholder 伪元素代表 <input> 或 <textarea> 字段中的占位符文本。占位符文本提示用户需要在字段中输入什么内容。可以使用 CSS 属性更改文本的外观,例如设置字体和颜色。

只有适用于::first-line伪元素的 CSS 属性子集才能在选择器中使用::placeholder 的规则中使用。

语法

selector::placeholder {
    /* ... */
}  

无障碍问题

  • 务必检查占位符文本颜色与输入背景之间的对比度。

  • 如果颜色对比度高,占位符文本可能会与已输入文本混淆。为了避免这种混淆,您可以使用aria-describedby属性添加更接近的文本,为用户提供提示。

  • 在 Windows 高对比度模式下,如果用户输入的文本与占位符文本具有相同的样式,则很难区分占位符文本和已输入文本。

  • 占位符不能替代<label>元素。辅助技术无法解析<input>元素。

CSS ::placeholder 示例

这是一个::placeholder伪元素的示例

<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>Execute on Firefox browser</h2>
   <div class="form">
      <input type="text" placeholder="Default Opacity">
      <input type="text" class="opaque-text" placeholder="Forced Opcaity">
   </div>
</body>
</html>
广告