web-dev-qa-db-ja.com

contenteditable divが入力要素のように動作しないのはなぜですか?

content editable divの動機は、通常のdiv要素内でのユーザー入力を許可することです。なぜそれは要素を入力するためにそれほど異なるように振る舞うのですか?主に、改行でのdivまたはbrの追加について言及しています。

また、プレースホルダーアイテムはありません。だから私の質問は、コンテンツ編集可能なdivのポイントは何ですか?なぜそれを使用したいのですか?

7

content-editable divのポイントは何ですか?

contenteditable要素の目的は、Webページ内の要素のコンテンツと構造を編集するためのWYSIWYG機能を提供することです。

なぜそれは要素を入力するためにそれほど異なるように振る舞うのですか?

contenteditable要素は、通常のDOM要素のようにレンダリングする必要があります。改行に関する特定の懸念に対処するには、<br><div>などの要素を使用せずに、レンダリングされた改行をHTMLで表現する方法はありません(通常のソースコードのHTML改行はレンダリングされないため)ビジュアルページ)。

なぜ、WHATWG(またはMicrosoft)は単にcontenteditable要素を「通常の」要素とは異なるルールで再生させるのではないのですか? "答えはcontenteditable要素はstopいつでもcontenteditableになるかもしれません-ステータスは切り替え可能です。現在contenteditableであるかどうかに応じて、要素に内部DOMを異なる方法でレンダリングさせる明確な賢明な方法はありません。

要素がcontenteditable状態のときに、非<br>の可視の改行が許可されたとします。要素がcontenteditableモードから切り替わったときに、非<br>の行を改行して消失させる必要がありますか?あなたはおそらくそのような提案に対して「はい、それで結構です!」と言うかもしれませんが、それはcontenteditableの最初の文で述べた目的に直面して飛んでいます。 contenteditable状態に基づいて要素の外観を変更すると、WYSIWYGとしての有用性が損なわれます。

12
apsillers