<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
[contenteditable=true]:empty:before {
content: attr(placeholder);
pointer-events: none;
display: block;
/* For Firefox */
}
/* */
div[contenteditable=true] {
border: 1px dashed #AAA;
width: 290px;
padding: 5px;
}
pre {
background: #EEE;
padding: 5px;
width: 290px;
}
</style>
</head>
<body translate="no">
<h1>对contentEditable元素的占位符支持,不使用JavaScript</h1>
<div contenteditable="true" placeholder="Enter text here..."></div>
<p>
添加一下样式就行了:
</p>
<pre>[contenteditable=true]:empty:before {
content: attr(placeholder);
pointer-events: none;
display: block; /* For Firefox */
}
</pre>
<h2>Notes</h2>
<ul>
<li>可以添加与实际文本不同的样式,如不透明度、斜体等</li>
<li>如果你的html需要100%兼容,你可以在两个文件上用“占位符”替换“数据占位符”
</li>
<li>在某些情况下,Chrome会在contentEditable元素中添加<br/>,从而破坏:空检查。</li>
<li>指针事件:不存在,因此光标在悬停时是正确的
</li>
</ul>
</body>
</html>
网友回复