JavaScript における BOM と DOM の詳細な説明

JavaScript における BOM と DOM の詳細な説明

BOM (ブラウザ オブジェクト モデル)

すべてのブラウザは、ブラウザ ウィンドウを表す window オブジェクトをサポートしています。
すべての js グローバル オブジェクト、関数、および変数は自動的に window オブジェクトのメンバーになります。
グローバル変数はウィンドウ オブジェクトのプロパティです。
グローバル関数は、ウィンドウ オブジェクトのメソッドです。
HTML DOM に基づくドキュメントも、ウィンドウ オブジェクトのプロパティの 1 つです。

window.document.getElementById("ヘッダー");
 document.getElementById("ヘッダー");

1. ウィンドウブラウザのウィンドウサイズを取得する

ブラウザ ウィンドウの内側の高さ (スクロール バー、メニュー バー、ツールバーを除く)

ウィンドウの内側の高さ
ウィンドウの内側の幅

Internet Explorer 8、7、6、5 のウィンドウは次のとおりです。

ドキュメント.documentElement.クライアント高さ
ドキュメント.documentElement.クライアント幅

ブラウザの幅と高さを取得するための互換性のあるソリューション`

var 幅 = window.innerWidth|| document.documentElement.clientWidth|| document.body.clientWidth
var 高さ = window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight

2. 画面 コンピュータの画面サイズを取得する

このプロパティは、ウィンドウのタスクバーなどのインターフェイス機能を除いた、訪問者の画面の幅と高さをピクセル単位で返します。

画面の有効幅
スクリーンの利用可能な高さ

3. ウィンドウ ウィンドウを開閉する

開く: window.open()
閉じる: window.close()

<script type="text/javascript">
    var 新しいウィンドウ;
    関数newWindow() {
        新しいウィンドウ = window.open("https://www.baidu.com/","baidu");
    }
    関数closeWindow() {
        新しいウィンドウを閉じます。
    }
</スクリプト>

4. ブラウザイベント

名前説明する
ウィンドウの読み込みブラウザ読み込みイベント
ウィンドウのスクロールブラウザスクロール監視
ウィンドウのサイズ変更ブラウザズーム監視
ウィンドウを開くオープンイベント
ウィンドウを閉じる閉鎖

5. 場所

名前説明する
場所.herf現在のURL
場所.ホスト名ホストドメイン名
場所.パス名現在のページのパスとファイル名
場所.ポートポート
ロケーションプロトコルプロトコル (http/https)
場所の割り当て新しいドキュメントを読み込み中
場所検索URLパラメータ

console.log(場所.href);
console.log(場所.ホスト名);
console.log(場所.パス名);
console.log(場所.ポート);
console.log(場所.プロトコル);

6. 歴史

ブラウザの履歴では、「window」という接頭辞を付ける必要はありません

名前説明する
履歴の長さ頻度
履歴.戻る前のページ
履歴.進む次のページ
歴史.go

括弧内に、値と正負の符号を設定します。+ 値は次の値にジャンプする回数を意味し、- 値は次の値にジャンプする回数を意味します。

前のページへのジャンプ数、ジャンプ数は次のように計算されます:終了ページ - 開始ページ、エラージャンプ数、実行効果なし

ウィンドウの履歴を戻す();

7. ナビゲーターはブラウザ関連情報を取得します

ウィンドウナビゲーター

名前説明する
ナビゲーション ユーザー エージェントモデル、カーネル、バージョン、プラットフォーム
navagator.appバージョンブラウザのバージョン情報
ナビゲーション アプリ名ブラウザ名
ナビゲーションプラットフォームオペレーティング·システム
ナビゲーション位置情報には経度と緯度が含まれる

エクスポート関数 GetCurrentBrowser() {
    var エージェント = navigator.userAgent.toLowerCase();
    var regStr_ie = /msie [\d.]+;/gi;
    var regStr_ff = /firefox\/[\d.]+/gi
    var regStr_chrome = /chrome\/[\d.]+/gi;
    var regStr_saf = /safari\/[\d.]+/gi;
    //IE11以下 if (agent.indexOf("msie") > 0) {
        エージェント.match(regStr_ie) を返します。
    }
    // MSIE フィールドは IE11 バージョンには含まれません if (agent.indexOf("trident") > 0 && agent.indexOf("rv") > 0) {
        "IE " + agent.match(/rv:(\d+\.\d+)/)[1]を返します。
    }
    //ファイアフォックス
    (agent.indexOf("firefox")> 0)の場合{
        エージェント.match(regStr_ff) を返します。
    }
    //クロム
    (agent.indexOf("chrome")> 0)の場合{
        エージェント.match(regStr_chrome) を返します。
    }
    //サファリ
    (agent.indexOf("safari") > 0 かつ agent.indexOf("chrome") < 0 の場合){
        エージェント.match(regStr_saf) を返します。
    }
}

// OS を取得
関数GetOs()をエクスポートする{
    let userAgent = navigator.userAgent.toLocaleLowerCase() //toLocaleLowerCase() は文字を小文字に変換します let wins = [
        {
            sys: 'windows nt 5.0',
            エイリアス: 'windows 2000',
            名前: 'Win2000'
        },
        {
            sys: 'windows nt 5.1',
            エイリアス: 'windows xp',
            名前: 'WinXP'
        },
        {
            sys: 'windows nt 5.2',
            エイリアス: 'windows 2003',
            名前: 'Win2003'
        },
        {
            sys: 'windows nt 6.0',
            別名: 'Windows Vista'、
            名前: 'WinVista'
        },
        {
            sys: 'windows nt 6.1',
            エイリアス: 'Windows 7'、
            名前: 'Win7'
        },
        {
            sys: 'windows nt 6.2',
            別名: 'Windows 8'、
            名前: 'Win8'
        },
        {
            sys: 'windows nt 10.0',
            エイリアス: 'Windows 10'、
            名前: 'Win10'
        },
    ]
    for (wins のうち win とする) {
        (userAgent.indexOf(win.sys) > -1 || userAgent.indexOf(win.alias) > -1) の場合 {
            win.name を返す
        }
    }
}
エクスポート関数 getEdition() {
    var userAgent = navigator.userAgent.toLocaleLowerCase()
    (userAgent.indexOf("win64") > -1 || userAgent.indexOf("wow64") > -1) の場合 {
        '64 ビット' を返す
    } それ以外 {
        '32ビット'を返す
    }
}
エクスポート関数IsPC() {
    var userAgentInfo = navigator.userAgent;
    var エージェント = ["Android", "iPhone",
        「SymbianOS」、「Windows Phone」、
        「iPad」、「iPod」];
    var フラグ = true;
    (var v = 0; v < Agents.length; v++) の場合 {
        (userAgentInfo.indexOf(エージェント[v]) > 0)の場合{
            フラグ = false;
            壊す;
        }
    }
    フラグを返します。
}
//URLパラメータを取得し、オブジェクトエクスポート関数GetRequest()を返す{
    var url = location.search; // URL 内の「?」文字の後の文字列を取得します。var theRequest = {}
    文字列を [] とします
    url.indexOf("?") != -1 の場合 {
        var str = url.substr(1);
        strs = str.split("&");
        (var i = 0; i < strs.length; i++) の場合 {
            リクエスト[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
        }
    }
    リクエストを返します。
}
エクスポートconstブラウザ={
    バージョン: (function() {
        u = navigator.userAgent とします。
            // アプリを navigator.appVersion とします
        戻る {
            Trident:U.Indexof( 'Trident')> -1、// Ie Kernel Presto:U.indexof( 'presto')> -1、// Opera Kernel WebKit:U.Indexof( 'AppleWebkit') ernel mobile:!! u.match(/applewebkit.*mobile。*/)、//それはモバイルターミナルiOS:!! u.match(i [^;]+;(u;)?cpu。+mac os x/)、// iOSターミナルAndroid:u.indexof( 'android')> | | | | | | | | | | | | | | 'iPhone')> -1、//それはiPhoneですか、それともqqhdブラウザipad:u.indexof( 'ipad')> -1、// iPadですか
            webApp: u.indexOf('Safari') === -1, // ヘッダーとフッターのないウェブアプリケーションかどうか weixin: u.indexOf('MicroMessenger') > -1, // WeChatかどうか qq: u.match(/\sQQ/i) === 'qq' // QQかどうか
        }
    }())、
    言語: (navigator.browserLanguage || navigator.language).toLowerCase()
}

8. ポップアップ

1. 警告ボックス: Window.alert()

2. 入力ボックス: Window.prompt()

3. 確認ボックス: Window.confirm()

DOM (ドキュメント オブジェクト モデル)

HTML DOM を介して JavaScript を使用して HTML ドキュメントのすべての要素にアクセスします。
Web ページが読み込まれると、ブラウザはそのページのドキュメント オブジェクト モデルを作成します。

DOM分類

HTML ドキュメントにアクセスして操作するための標準メソッドを定義します。 DOMはHTML文書をツリー構造として表現する

HTMLではすべてがノードである

  • 要素ノード
  • テキストノード
  • プロパティノード

各ノード間の関係は、親子関係\兄弟関係です。プログラム可能なオブジェクトモデルを通じて、JavaScriptは動的なHTMLを作成できるほどのパワーを獲得しました。

  • JavaScript はページ内のすべての HTML 要素を変更できます。
  • JavaScript はページ内のすべての HTML 属性を変更できます。
  • JavaScript はページ内のすべての CSS スタイルを変更できます。
  • JavaScript はページ内のすべてのイベントに反応できます。

DOM オブジェクト

物体説明する
ドキュメント: ドキュメントオブジェクトブラウザに読み込まれたすべてのHTML文書はDocumentオブジェクトになる
要素: 要素オブジェクトElement オブジェクトには、要素ノード、テキスト ノード、コメント ノードのタイプの子ノードを含めることができます。
属性: ノード属性オブジェクトAttrオブジェクトはHTML属性を表す
イベント: イベントオブジェクトイベントが発生した要素、キーボードのキーの状態、マウスの位置、マウスボタンの状態

ドキュメントオブジェクト

Documentオブジェクトのすべてのプロパティ

財産説明する
文書本体ボディを取得
ドキュメント.ヘッド頭をつかむ
ドキュメント.要素HTMLを取得
ドキュメント.cookieクッキーを取得する
ドキュメント.ドメイン現在のドキュメントのドメイン名。クロスドメイン操作が可能です。
ドキュメント最終更新日文書が最後に変更された日時
ドキュメントリファラー現在のドキュメントのURL
ドキュメントタイトルタイトル
ドキュメント.URL現在のドキュメントのURL

一般的な方法を文書化する

方法説明する
ドキュメント.write()文書作成内容
ドキュメントを開く()任意の document.write() または document.writeln() メソッドからの出力を収集するためのストリームを開きます。
ドキュメントを閉じる() document.open() メソッドで開かれた出力ストリームを閉じ、選択したデータを表示します。
ドキュメント.writeIn()各式の後に改行文字が書き込まれる点を除いて、write() メソッドと同じです。
要素を取得
ドキュメント.getElementById() IDで要素を取得する
ドキュメント.getElementsByName()名前で関連する要素の配列を取得する
タグ名による要素の取得()タグによって関連要素配列を取得するために forEach ループを使用することはできません
ドキュメント.getElementsByClassName()クラスを通じて関連要素配列を取得するためにforEachループを使用することはできません
ドキュメント.クエリセレクタ()条件に一致する最初のタグオブジェクトを取得します --- 取得されるタグオブジェクトは 1 つだけです
ドキュメント.querySelectorAll()条件に一致するすべてのタグ オブジェクトを取得します。結果は疑似配列になります。
要素の作成
ドキュメント.createAttribute()プロパティオブジェクトの作成
ドキュメント.createElement()要素オブジェクトの作成
ドキュメント.createTextNode()テキストオブジェクトの作成
ドキュメント.createComment()メモを作成する

要素ドキュメントオブジェクト

要素オブジェクトの共通メソッド

方法説明する
要素の追加、削除、変更、複製
子要素を追加(ドキュメント)末尾にノードを挿入
insertBefore(ndoc, oldoc)ノードの前にノードを挿入する
子要素の削除(doc)ノードを削除する
子を置き換える(ドキュメント)ノードの置換
クローンノード()クローンノード
クローンノード(true)ノードとその内容を複製する
属性関連
属性を取得する()プロパティを取得する
属性を設定する()プロパティの設定
属性を削除します。属性を削除
属性ノードを取得します。属性ノードの指定
属性ノードを設定する()プロパティノードの設定
属性ノードを削除します。属性ノードを削除
タグ名による要素の取得()指定されたタグ名のすべての子要素のコレクション
ノードリスト.item() NodeList内の指定されたインデックスにあるノード

要素オブジェクトの共通プロパティ

財産説明する
id要素ID
スタイルスタイル
クラス名クラス属性
インナーHTMLタグ付けされたコンテンツ
内部テキストテキストコンテンツ
ノードを取得
子ノード要素の子ノードを取得する
親ノード要素の親ノードを取得する
属性すべてのプロパティを取得する
子供たちすべてのラベルの子ノードを取得する
最初の子最初の子ノード
最後の子供最後の子ノード
firstElementchild最初のラベルの子ノード
最後の要素の子最後のラベルの子ノード
前兄弟前の兄弟ノード
兄弟次の兄弟ノード
前の要素兄弟前のタブ
次の要素の兄弟次のタブ
親ノード親ノード
親要素親ラベルノード
ノード名名前: 要素ノード -- タグ名、属性ノード -- 属性名、テキストノード -- #text、コメントノード -- #comment
ノードタイプノードタイプ: 要素 1、属性 2、テキスト 3、コメント 8
ノード値要素値: 属性値、テキスト内容、コメント内容
ノードリストの長さNodeList内のノードの数
サイズ距離
クライアントの高さ高さ - コンテンツ + パディング
クライアント幅
オフセット高さ高さ - コンテンツ + パディング + 境界線
オフセット幅
クライアントトップ上枠線の幅
クライアント左境界線の幅を作る
オフセットトップ親オブジェクトの上端距離
オフセット左親オブジェクトの左距離

DOMイベント操作

マウスイベント

名前説明する
クリッククリックイベント
クリックダブルクリックイベント
コンテキストメニュー右クリックイベント
マウスダウンイベントを押すと1回実行される
マウスアップイベントを発生させる
マウス移動マウスの動き
マウスオーバー入居する
マウスアウト取り除く
マウスで入力移動しても泡立ちは発生しません
マウスを離す取り除くと泡が出ない

キーボードイベント

クリック時にイベントオブジェクトを取得する

  • 通常版

E/イベント

  • IE 下位バージョン

ウィンドウ.イベント

互換性のある記述: var e=e||window.event

ケース関連情報

  • ボタン名:

e.キー

  • ボタンコード:

e.キーコード

  • Firefoxと互換性あり:

e.どれ

互換性のある書き込み: e.Keycode|| e.Which

altkey ctrlkey shiftkey alt ctrl shiftが押されているかどうかを確認します

タッチスクリーンイベント

名前説明する
タッチスタート始める
タッチエンド仕上げる
タッチムーブ動く

特別イベント

名前説明する
アニメーション終了アニメーション終了
遷移終了オーバーエンド

フォームイベント

名前説明する
提出するイベントはフォームが送信されたときにのみトリガーされます
集中タグがフォーカスされたときにトリガーされるイベント
入力データ入力時に発生するイベント
変化追加の損失と入力データの変更はトリガーイベントです

ブラウザの互換性

1. ブラウザのスクロールの高さ

var height=document.documentElement.scrollTop||document.body.scrollTop
var width=document.documentElement.scrollLeft||document.body.scrollLeft
  • 文書型宣言がある
ドキュメント.documentElement.scrollTop
ドキュメント.documentElement.scrollLeft
  • 文書型宣言なし
ドキュメント.body.スクロールトップ
ドキュメント本体の左スクロール

2. 非インラインスタイル属性を取得する

実際の効果は、タグによって実行されるスタイル属性を取得することです

if (window.getComputedStyle) {
    window.getComponentStyle(dom).幅
}それ以外{
    doc.currentStyle.width
}

3. イベントオブジェクトを取得する

dom.onclick=関数(e){
    e=e||ウィンドウイベント
}

4. イベントオブジェクトターゲットを取得する

Firefoxの下位バージョンと互換性があるが、現在は基本的に使用されていない

dom.event = 関数() {
    e=e||ウィンドウイベント
    var ターゲット = e.target || e.srcElement
}

5. ボタンの値

Firefoxの下位バージョンと互換性があるが、現在は基本的に使用されていない

document.onkeyup=関数(e){
    e=e||ウィンドウイベント
   var keyNum=e.keyCode||e.which
}

6. イベント監視/イベント登録

関数 myAddEvent(ele,type,fun){
    addEventListenerメソッドが存在するかどうかを判定する if(ele.addEventListener){
        ele.addEventListener(型、関数)
    }それ以外{
        ele.attachEvent('on'+type,fun)
    }
}

7. イベント処理関数を削除する

関数 delFun(要素,型,関数){
    if(ele.removeEventListener){
        ele.removeEventListener(type,fun)
    }それ以外{
        ele.detachEvent('on'+type,fun)
    }
}

8. イベント配信を防ぐ

関数stopBBle(e){
    if(e.stopPropagation){
        e.stopPropagation()
    }それ以外{
        e.cancelBubble=true
    }
}

9. デフォルトイベントの実行を防止する

if(e.preventDefault){
    e.preventDefault
}それ以外{
    e.returnValue=false
}

10. Ajax オブジェクト

xhr にします。
試す{
    //通常の青いフラグ xhr=new XMLHttpRequest()
}キャッチ(e){
    //IE の下位バージョンと互換性あり xhr=new ActiveXObject('Microsoft.XMLHTTP')
}
xhr.open('post','url')
xhr.setRequestHeader('コンテンツタイプ','アプリケーション/x-www/フォームURLエンコード')
xhr.send('名前=111&年齢=222')
//標準ブラウザ xhr.onload = function(){}
//互換性の記述 xhr.onreadystatechange=function(){
    xhr.readystate==4の場合{
        reg=/^a\d{2}$/ とします
        もしres.test(xhr.status)が
            コンソール.lof(json.parse(xhr.response))
        }
    }
}

互換性のある書き込み、パッケージングツール

検証コード生成機能

関数mySetVc() {
    var str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXUZ';
    var newStr = '';
    (var i = 1; i <= 6; i++) の場合 {
        var num = parseInt(Math.random() * str.length)

        (newStr.indexOf(str[num]) === -1)の場合{
            newStr += str[num];
        } それ以外 {
            私 - ;
        }
    }

    newStr を返します。
}

アドレスバーのデータ情報を取得する

関数 getUrlVal() {
    // 1、アドレスバーパラメータ文字列を取得します。let str = decodeURI(window.location.search).substr(1);

    // 結果を保存するオブジェクトを作成します。let obj = {};

    // 2 セミコロンとスペースの変換に従って配列に変換 const arr1 = str.split('&')

    // 3 ループ変数配列、= 等号に従ってデータ文字列を配列に分割します arr1.forEach(v => {
        arr2 = v.split('=') とします。
        obj[arr2[0]] = arr2[1];
    })

    obj を返します。

}

テーブル関数を生成する

// パラメータ 1: array、参照するデータ配列 // パラメータ 2: label、書き込むラベル オブジェクト function mySetTable(array, element) {
    var str = '';
    配列.forEach(関数(v, k) {
        str + = '<tr>';
        (var キー v) {
            str += `<td>${v[key]}</td>`;
        }
        str += `<td><button index="${k}">削除</button></td>`
        str + = '</tr>';
    });
    要素.innerHTML = str;
    var oBtns = document.querySelectorAll('ボタン');

    mySetButton(oBtns、配列、要素);
}

削除効果機能をボタンにバインドする

// パラメータ 1、ボタン配列 // パラメータ 2、データ配列 // パラメータ 3、コンテンツを書き込むラベル オブジェクト function mySetButton(BtnArray, array, element) {
    BtnArray.forEach(関数(v) {
        v.onclick = 関数(){
            var bool = window.confirm('OK、削除しますか');
            if (ブール) {
                var インデックス = v.getAttribute('index');
                配列.splice(インデックス、1);
                mySetTable(配列、要素);
            }
        }
    })
}

リスナーイベントの互換性関数を処理する

// パラメータ 1: イベントをバインドする必要があるタグオブジェクト // パラメータ 2: バインドするイベントタイプ、
// パラメータ3: バインドするイベント処理関数 function myAddEvent(element, type, fun) {
    要素を追加する場合
        // 通常のブラウザ element.addEventListener(type, fun);
    } それ以外 {
        // 低バージョン IE ブラウザ element.attachEvent('on' + type, fun);
    }
}

CSSスタイル関数を取得する

// パラメータ 1、属性が必要なタグオブジェクト // パラメータ 2、属性が必要な属性名 function myGetStyle(element, type) {
    if (window.getComputedStyle) {
        window.getComputedStyle(要素)[type]を返します。
    } それ以外 {
        element.currentStyle[type]を返します。
    }
}

クッキー機能を設定する

// パラメータ 1: クッキー キー名 // パラメータ 2: クッキー キー値 // パラメータ 3: クッキーの有効期限 (秒)

関数 mySetCookie(キー, 値, 時間) {
    // 1、現在の時刻オブジェクトを取得します。const nowTime = new Date();

    // 2、現在の時刻のタイムスタンプを取得します --- 単位はミリ秒です let timeStamp = nowTime.getTime();

    // 3、タイムスタンプを計算します。現在のタイムスタンプ - 8 時間 + 有効期限 (秒)
    // 世界標準時である有効期限付きのタイムスタンプを取得します。let newTimeStamp = timeStamp - 8 * 60 * 60 * 1000 + time * 1000;

    // 4、タイムスタンプを時間オブジェクトに戻します nowTime.setTime(newTimeStamp);

    // 5. 3 番目のパラメータが渡されない場合に対応 // time が undefined の場合は、3 番目のパラメータがないことを証明し、セッションの有効性を実行し、空の文字列を割り当てます // time が undefined でない場合は、3 番目のパラメータがないことを証明し、nowTime 時間オブジェクト内のタイムスタンプの有効性を実行します let endTime = time === undefined ? '' : nowTime;

    // 6、クッキーを設定する
    // クッキーの追加属性を設定します。path=/
    // www内のすべてのファイルに設定されたCookieを使用させる
    document.cookie = `${key}=${value};expires=${endTime};path=/`;

}

クッキーの特定のデータを取得する

関数myGetCookie() {
    // 結果を保存するオブジェクトを作成します。let obj = {};

    // 1 クッキー文字列を取得する let str = document.cookie;

    // 2 セミコロンとスペースの変換に従って配列に変換 const arr1 = str.split('; ')

    // 3 ループ変数配列、= 等号に従ってデータ文字列を配列に分割します arr1.forEach(v => {
        arr2 = v.split('=') とします。
        obj[arr2[0]] = arr2[1];
    })

    obj を返します。
}

関数fun(){
    console.log('これは新しく作成された js ファイルの内容ですが、圧縮しましたか?')
}

JavaScript の BOM と DOM の詳細な説明については、これで終わりです。より関連性の高い js BOM と DOM コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • JavaScript の構成を実装する --- BOM と DOM の詳しい説明
  • JavaScript BOMとは何か、BOMとDOMの違いは何か
  • JavaScript 学習ノート (パート 3) BOM と DOM の詳細説明
  • Javascript の基礎 (パート 3) BOM、DOM の概要
  • DHTML、JavaScript、DOM、BOM、WEB標準記述を解析する
  • JavaScriptのDOMとBOMの違いと使い方を詳しく解説

<<:  Ubuntu 20.04 IPアドレスを変更する方法の例

>>:  Ubuntu 20.04は静的IPアドレスを設定します(異なるバージョンを含む)

推薦する

WeChatアプレット学習ノート: ページ構成とルーティング

最近、小さなプログラムの開発を勉強して見直しており、学習結果のいくつかをメモしています。公式の We...

MySQL InnoDB ロック メカニズムの詳細な例

1. InnoDBのロック機構InnoDB ストレージ エンジンは、行レベルのロックとトランザクショ...

FileZilla を使用して FTP ファイル サービスを素早く構築する方法

ファイルの保存とアクセスを容易にするために、FTPサービスが特別に構築されています。 FTP サーバ...

JS で配列をループする 4 つの方法のまとめ

この記事では、配列を走査する 4 つの方法を比較してまとめます。 for ループ: for (let...

マウスが画像のハイパーリンク上を通過するときに画像のサイズ(幅、高さ)を変更する CSS

マウスが画像の上を通過したときに画像のハイパーリンクを変更する方法:コードをコピーコードは次のとおり...

Linux のごみ箱メカニズムの実装プロセスと使用方法の詳細な説明

序文: Linux システムでの rm は元に戻せません。コマンドの設計自体に問題はありません。問題...

Linux ブートシステム方式の分析

この記事では、Linux システムを起動する方法について説明します。ご参考までに、詳細は以下の通りで...

nginx を使用してカナリアリリースをシミュレートする方法

この記事では、ブルーグリーン デプロイメントと、nginx を使用してカナリア リリースを最も簡単な...

HTML要素を非表示にするいくつかの方法

1. CSSを使用するコードをコピーコードは次のとおりです。スタイル="display:n...

Ubuntu LinuxにOracle Java 14をインストールする方法

最近、Oracle は Java 14 (または Oracle JDK 14) の一般公開を発表しま...

Mybatisの特殊文字処理の詳細な説明

序文: Mybatis の特殊文字処理、Mybatis の xml ファイル内の特殊文字の処理、ここ...

Mysql論理アーキテクチャの詳細な説明

1. 全体的なアーキテクチャ図他のデータベースと比較すると、MySQL は、そのアーキテクチャがさま...

テーブル編集操作を実現する js+Html

この記事では、テーブルの編集操作を実現するためのjs+Htmlの具体的なコードを参考までに共有します...

HTML およびプラグイン アプリケーションにおけるデータ カスタム属性の使用の概要

HTML にはデータ属性が含まれていることがよくあります。これらは HTML5 のカスタム属性です。...