HTMLのimgタグで画像の中心部分だけを表示する方法(3つの方法)

HTMLのimgタグで画像の中心部分だけを表示する方法(3つの方法)

HTML の img タグで画像の中心を表示する方法は、現在 3 つあります。ここで記録しておきます。

最初の方法: CSS clip:rect(top right bottom left); を使用する。次のように position: absolute: と一緒に使用する必要がある。

<img src="upload/2022/web/77b8b5ca-11d3-4307-9a93-c12df5eb1a35.jpg"
     スタイル="位置: 絶対;クリップ: rect(0px,250px,200px,50px);幅: 300px;高さ: 200px">

画像の幅と高さを設定することは、実際の幅と高さに比例して画像を拡大縮小し、次に rect メソッドを使用して画像の切り取り範囲を設定することと同じです。

- 2番目の方法: img の背景属性を使用する:

<スタイル タイプ="text/css">
        画像 {
            background-image: url(upload/2022/web/77b8b5ca-11d3-4307-9a93-c12df5eb1a35.jpg);//背景画像を設定します。background-repeat: no-repeat;//背景画像は1回だけ表示されます。
            背景添付: スクロール;//
            background-position: -50px 0px;//背景画像のオフセットを設定します。この -50 は、背景全体が左に 50 オフセットされ、画像の中心が表示されることを意味しますbackground-size: 300px 200px;////背景画像のサイズを設定します。これは、比例して拡大縮小される画像の実際の幅と高さに相当しますbackground-color: transparent;//
            幅: 200px;//
            高さ: 200px;//
        }
    </スタイル>

背景を使用して、画像表示の中心位置を制御します。画像の実際の幅と高さに応じて比例して拡大縮小するように背景を設定し、背景の動きをオフセットして画像の幅と高さを制御する必要があります。画像のsrcは設定できないことに注意してください。imgタグでsrcが設定されていない場合、表示された画像に灰色の境界線が表示され、それを削除する方法はありません。border:0pxは効果がありません。以前の解決策は、srcにデフォルトの完全に透明な画像を配置することで、問題を解決しました。

3 番目の方法: div に img を含め、div の overflow: hidden; を使用して制御します。より柔軟に使用できます。

<div スタイル="幅: 100px;高さ: 100px;オーバーフロー: 非表示">
<img src="upload/2022/web/77b8b5ca-11d3-4307-9a93-c12df5eb1a35.jpg" スタイル="position: relative" id="img_id">
</div>
<スクリプト>
    var img = document.getElementById("img_id");
    var image = 新しい Image();
    var realWidth = 0; //画像の実際の幅を保存します var realHeight = 0; //画像の実際の高さを保存します //画像の幅と高さを取得します image.src = "upload/2022/web/77b8b5ca-11d3-4307-9a93-c12df5eb1a35.jpg";
    //読み込み成功の処理 image.onload = function () {
        realWidth = image.width; //画像の実際の幅を取得します。realHeight = image.height; //画像の実際の高さを取得します。//imgの幅と高さを画像の実際の幅と高さに比例させ、オフセットします。if (realWidth > realHeight){
            img.width = (100/realHeight)*realWidth; // 比例スケーリング幅 img.height = 100; // div の高さと一致する img.style.left = '-' + ((100/realHeight)*realWidth-100)/2 + 'px'; // 画像の相対位置オフセットを img タグの幅と高さの半分に設定する }else if (realWidth < realHeight){
            img.width = 100; // div と同じ高さ img.height = (100/realWidth)*realHeight; // 比例スケーリングの高さ img.style.top = '-' + ((100/realWidth)*realHeight-100)/2 + 'px'; // 画像の相対位置オフセットを img タグの高さと幅の半分に設定 }else {
            画像の幅 = 100;
            高さ = 100;
        }
    };
    //画像読み込み失敗の処理 img.onerror = function () {
        画像サイズ: 1000x400px;
        画像の幅 = 100;
        高さ = 100;
    }
</スクリプト>

上記のコメントは非常に明確です。重要なことは、div がサイズを制御し、img タグが div のサイズに応じて独自のサイズを調整することです。画像の中央部分を表示するためにオフセットが行われます。個人的には、3番目の方法の方が良いと思います。

上記は、HTMLでimgタグ内の画像の中央のみを表示する方法(3つの方法)を紹介しました。お役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

<<:  MySql マスタースレーブレプリケーションの実装原理と構成

>>:  WIN10 システムと Docker 内部コンテナ IP 間の通信方法

推薦する

Docker イメージのプルとタグ操作 pull | tag

Fabric プロジェクトのソースコードを読み直してみたところ、Docker の部分でよくわからな...

HTML で色を表すには、6 桁の 16 進コード、RGB、またはキーワードを使用します。

HTML で色を表す方法は 3 つありますが、最もよく使われるのは 6 桁の 16 進コード表現です...

ウェブサイトのユーザビリティを向上させる10のヒント

企業の Web サイト、個人のブログ、ショッピング Web サイト、ゲーム Web サイトなど、どの...

MySQL挿入パフォーマンスを最適化する方法の例

MySQL パフォーマンスの最適化MySQL パフォーマンスの最適化とは、リソースを合理的に配置し、...

CSS3 を使用して 3D テキスト ホバー効果を実装するサンプル コード

この記事では、3D テキストのホバー変更効果を実現するための CSS3 のサンプル コードを紹介しま...

スキニングを実現するネイティブJavaScript

ネイティブJavaScriptでスキニングを実装するための具体的なコードは参考までに。具体的な内容は...

キャッシュサーバーを構築するためのMemcached方式

序文多くの Web アプリケーションは、リレーショナル データベース管理システム (RDBMS) に...

Vue プロジェクトで axios リクエストを使用する方法

目次1. インストール2. カプセル化に問題はない3. ファイルを作成する4. アドレス設定をリクエ...

Node.jsとDenoの比較

目次序文Denoとは何ですか? Node.jsとの比較建築ESモジュール依存関係の管理TypeScr...

超シンプルな QPS 統計手法 (推奨)

過去 N 秒間の QPS 値の統計 (1 秒あたりの選択、挿入などを含む) mysql> se...

Dockerの動作モードと原理の詳細な説明

次の図に示すように: 仮想マシンと Docker を使用するとき、「なぜ Docker は VM よ...

この記事はVueのライフサイクルを理解するのに役立ちます

目次1. beforeCreate & created 2. マウント前とマウント済み3. ...

セマンティック HTML 構造の利点は何ですか?

1つ: 1.セマンティック タグは単なる HTML であり、CSS にはセマンティクスはありません...

開発効率の向上に役立つ 56 個の実用的な JavaScript ツール関数

目次1. デジタルオペレーション(1)指定された範囲内で乱数を生成する2. 配列操作(1)配列の順序...

MYSQLデータベースの最適化段階を簡単に理解する

導入面接官がこんな質問をしたことはありませんか?データベースをどのように最適化しますか?では、この質...