HTML タグのコンテンツを編集するには、contenteditable 属性を設定します (textarea を置き換えることができます)

HTML タグのコンテンツを編集するには、contenteditable 属性を設定します (textarea を置き換えることができます)


コードをコピー
コードは次のとおりです。

<div contenteditable="true">コンテンツを編集できます</div>

BODY に contenteditable="true" を追加すると、この属性がいかに魔法の力を持つかがわかります。したがって、タグを編集するには、HTML タグに contenteditable="true" 属性を設定できます。

contenteditable 属性はすべてのブラウザと互換性があります (IE6 より前のバージョンとの互換性はテストされていません)。

場合によっては、input や textarea の代わりに DIV を使用して同じ効果を得ることができます。たとえば、ajax を使用する場合、フォームを送信するときに DIV のコンテンツを取得できます。

注意深い人なら、QQ スペースにコメントを投稿するためのテキスト ボックスは、実際にはテキスト エリア テキスト ボックスではなく、DIV であることに気付くでしょう。

Div+CSS は、HTML5 標準の contenteditable 属性を実現するために、textarea テキスト フィールドの高さの適応をどのようにシミュレートしますか。

この効果は主に、HTML5 の contenteditable 属性をタグに追加することで実現されます (contenteditable: は、ユーザーがコンテンツを編集できるかどうかを指定します)。素晴らしいことに、この属性は IE でもサポートされるため、互換性の問題をあまり心配する必要はありません。
デモ:


コードをコピー
コードは次のとおりです。

<スタイル タイプ="text/css">
.demoEdit{border:1px solid #dddddd;width:450px;min- height:20px;_height:20px;outline:0px;padding:2px;} // outline:0px;スタイル ソリューション: コンテナーがフォーカスを取得すると、コンテナーは FF ブラウザーで点線フレームの効果を表示します。
.demoEdit p{margin:0px;padding:0px;}
</スタイル>
<div contenteditable="true" style="border:1px solid #dddddd;width:360px;min-height:20px;_height:20px;outline:0px;"></div>
<div コンテンツ編集可能="true" クラス="demoEdit"></div>

添付ファイル:
FF ブラウザでは、コンテナにフォーカスが当たったときに、カーソルの高さがコンテナの高さと同じになったり、カーソルが表示されなかったりします。このとき、コンテナにデフォルトで <br/> や &nbsp; などのプレースホルダーを追加すると、この問題が解決します。

ここで、Yuzi は、js コードを追加せずに高さを編集して自動的に適応できる別の優れた方法を紹介します。皆さん、目を覚ましてください。Yuzi は DIV をテキスト ボックスとして直接使用できます。これは TextArea テキスト ボックスに似ています。さらに重要なのは、DIV のユーザー エクスペリエンスがより完璧でクールであることです。

Html の contentEditable 属性を使用すると、特定の要素の編集可能状態をオンにすることができます。おそらく、contentEditable 属性を使用したことがないか、聞いたこともないかもしれませんが、contentEditable の役割は非常に魔法のようなものです。 div または Web ページ全体、さらに span やその他の要素を書き込み可能にすることができます。最もよく使用されるテキスト入力要素は input と textarea です。contentEditable 属性を使用すると、div、table、p、span、body などの多くの要素にコンテンツを入力できます。特に、contentEditable は HTML5 標準で効果的にサポートされています。ぜひ来て目撃してください。

contentEditable="true" 属性を設定すると、かなり魔法のようになりませんか?ハハハ…

デモページ: http://demo.jb51.net/js/2014/ContentEditable/

特殊効果をつけてみましょう。div要素編集を開いて、画像を挿入できますか?これにはjsを使用する必要があります。


コードをコピー
コードは次のとおりです。

<スクリプト>
関数img(){
var location1 = prompt("画像のアドレスを入力してください:","http://");
if(場所1){
場所1を選択します。
}
}
関数 selImg(s){
if(!s){return false;}
var h = s.substr(s.lastIndexOf(".")+1,3);
if(h=="gif"||h=="jpg" || h=="GIF" || h=="JPG"){
編集 = document.getElementById("idEdit")
編集.innerHTML+='<img src='+s+'>'
}
それ以外{
}
}
</スクリプト>
<div NAME=EditCtrl id=idEdit contentEditable=true style="width:100%;height:200px;border:1px solid #666666"> <b>Yuzi.me</b></div>
<input type="button" name="送信" value="画像を挿入" onclick="img()">

素晴らしい! より多くのエフェクトを使用したい場合は、自分で js コードを記述する必要があります。すべての攻城戦ヒーローがベストを尽くし、共有できることを楽しみにしています!

<<:  CSS background-blend-modeの仕組みを深く理解する

>>:  jQuery+swiper コンポーネントはタイムラインのスライド年タブ切り替え効果を実現します

推薦する

JavaScript イベント委任 (プロキシ) の使用例の詳細

目次導入例: イベントの委任記述方法1: イベント委譲書き方2: 各子要素がイベントをバインドする例...

Linux 環境の Apache で https サービスを有効にする方法の詳細な説明

この記事では、Linux 環境の Apache で https サービスを有効にする方法について説明...

CSS で左上の三角形を作成するいくつかの方法の詳細な説明

今日は、CSS を使用して左上の三角形を記述するいくつかの方法を紹介します。概略図(幅と高さを60p...

Dockerコンテナ接続実装手順の分析

一般的に言えば、コンテナが起動した後、ポート マッピングを通じてコン​​テナが提供するサービスを使用...

MySql インデックス使用戦略の分析

MySql インデックスインデックスの利点1. 一意のインデックスまたは主キー インデックスを作成す...

Dockerでudpポート番号を指定する問題を解決する

Docker はコンテナを起動するときにアクセス ポートを指定します。複数の -p オプションを使用...

メタ宣言注釈の手順

メタ宣言注釈の手順: 1. モバイル ページと 1 対 1 で対応するすべての PC ページを分類し...

Dockerfile テキストファイルの使用例の分析

Dockerfile は、イメージをビルドするために使用されるテキスト ファイルです。テキスト コン...

スライダーを作成するためのネイティブ js ドラッグ アンド ドロップ機能のサンプル コード

ドラッグ アンド ドロップはフロントエンドでよく使われる機能であり、多くのエフェクトで js のドラ...

WeChatミニプログラムは同時通訳を利用して音声認識を実装します

私は同時通訳音声認識機能を使用して、WeChatアプレットのホームページの音声検索機能を実現しました...

Linux システムのユーザー管理コマンドの概要

ユーザーとグループの管理1. ユーザーとグループの基本概念ユーザーとグループ:システム上のすべてのプ...

MySQL 全体または単一のテーブルデータのエクスポート

単一のテーブルをエクスポートするmysqldump -u ユーザー -p db名 テーブル名 >...

サーバーストレステストの概念と方法 (TPS/同時実行性)

目次1 ストレステストの指標1.1 秒あたり1.2 クォータ1.3 平均処理時間(RT) 1.4 同...

Linux nlコマンドの使い方

1. コマンドの紹介nl (行数) は指定されたファイルに行番号を追加し、標準出力に書き込みます。フ...

MySQLの文字セット設定を5分で理解しましょう

目次1. コンテンツの概要2. 文字セットと文字順序の概念と関係3. MySQL でサポートされてい...