📜  como fazer placeholder que vira label - Html (1)

📅  最后修改于: 2023-12-03 15:00:00.341000             🧑  作者: Mango

如何将 placeholder 转换为 label - Html

在 HTML 表单中,我们可以使用 placeholder 属性来提供有关输入字段的提示。但是,当用户开始输入时,该提示会消失,这可能会导致用户困惑或忘记输入什么数据。为了解决这个问题,我们可以使用 CSS 和 JavaScript 将 placeholder 转换为 label。本文将介绍如何实现这一功能。

HTML

首先,我们需要一个包含输入字段的 HTML 表单。以下代码展示了一个示例表单。

<form>
  <input type="text" placeholder="Enter your name" id="name-input" />
</form>
CSS

要将 placeholder 转换为 label,我们需要一些 CSS 样式。以下样式使用伪元素选中占位符文本,并将其设置为绝对定位,以便它可以覆盖在输入字段上方。

input::-webkit-input-placeholder {
  /* Chrome/Opera/Safari */
  position: absolute;
  top: 0;
  left: 0;
  padding: 7px 0 0 10px;
  font-size: 16px;
  line-height: 18px;
}

input::-moz-placeholder {
  /* Firefox 19+ */
  position: absolute;
  top: 0;
  left: 0;
  padding: 7px 0 0 10px;
  font-size: 16px;
  line-height: 18px;
}

input:-ms-input-placeholder {
  /* IE 10+ */
  position: absolute;
  top: 0;
  left: 0;
  padding: 7px 0 0 10px;
  font-size: 16px;
  line-height: 18px;
}

input:-moz-placeholder {
  /* Firefox 18- */
  position: absolute;
  top: 0;
  left: 0;
  padding: 7px 0 0 10px;
  font-size: 16px;
  line-height: 18px;
}

注意:上述代码使用了一些浏览器私有的前缀。这是因为不同浏览器对占位符样式支持的标准不同。使用浏览器私有前缀可以确保样式在不同浏览器上正确显示。

JavaScript

接下来,我们需要一些 JavaScript 代码来处理点击 label 时将焦点转换到输入字段。以下是示例代码:

var input = document.getElementById('name-input');
var label = document.querySelector('label[for="' + input.id + '"]');

if (label) {
  label.addEventListener('click', function() {
    input.focus();
  });
}

注意:上述代码假定我们在 HTML 中使用了标签的 for 和输入字段的 id 属性来将它们相关联,以确保点击标签时可将焦点转换到输入字段。

结论

现在,我们已经学会了如何将 placeholder 转换为 label,这样表单中的输入字段提示信息就会一直可见,从而防止用户忘记输入数据。实现这一功能需要一些 CSS 和 JavaScript 代码。希望这篇文章能帮助您进一步了解 HTML 表单和表单样式。