Result
タイトルの通り、contenteditable
で編集可能な要素にplaceholder
を与える、というもの
結果から言うと:empty
を使って何も入力されてない状態の時に:before
で任意のテキストを挿入します
挿入するテキストはcontent: attr()
で挿入します
css
[contenteditable=true]:empty:before{ content: attr(placeholder); pointer-events: none; display: block; /* For Firefox */ } div[contenteditable=true] { border: 1px dashed #AAA; width: 290px; padding: 15px; }
CSSのみで完結します
html
<div contenteditable="true" placeholder="何か入力してみてください"></div>
CSS、HTMLともに簡単なコードで済むのでJSを使う必要はなさそうです。ブラウザさえ問題なければ
というわけでブラウザの対応状況を確認してみます
can i use
↑ contenteditable
のサポート状況です。古いiOSやFirefox以外は問題なさそうです
↑ :empty
も問題なさそうですね。まぁそこまで高い需要のあるTipsでは無さそうですが。
via
Placeholder support for contentEditable elements, without JavaScript