以下是一个简单的文本框水印提示效果的实现代码,使用HTML和CSS来完成。这种效果常用于网页上未填写或需要提示用户输入的区域。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>文本框水印提示效果</title>
<style>
.watermark-input {
position: relative;
width: 200px;
height: 40px;
border: 1px solid #ccc;
border-radius: 4px;
padding: 10px;
font-size: 16px;
}
.watermark-input::placeholder {
color: transparent; /* 隐藏原生placeholder */
}
.watermark-text {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
color: #aaa; /* 水印颜色 */
pointer-events: none; /* 确保鼠标事件穿透 */
}
/* 当文本框有内容时,隐藏水印 */
.watermark-input:not(:placeholder-shown) + .watermark-text {
display: none;
}
</style>
</head>
<body>
<input type="text" class="watermark-input" placeholder="请输入内容...">
<span class="watermark-text">请输入内容...</span>
</body>
</html>
**注意**:这个实现方法使用了`::placeholder`伪元素来隐藏原生的placeholder文本,并通过绝对定位的`span`元素来显示自定义的水印文本。通过CSS选择器`:not(:placeholder-shown)`来判断文本框是否有内容,从而控制水印文本的显示与隐藏。但是,请注意`:not(:placeholder-shown)`伪类的兼容性,它在较旧的浏览器中可能不被支持。
对于不支持`:not(:placeholder-shown)`的浏览器,你可能需要通过JavaScript来添加额外的逻辑以隐藏水印文本。不过,由于本回答仅涉及HTML和CSS,这里不展开JavaScript的解决方案。