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 間の通信方法

推薦する

CocosCreatorゲームにおける魚群アルゴリズムの詳細な説明

序文最近CocosCreatorを学びたいと思ったので、エディターをダウンロードして起動しました。誰...

Nginx で何ができるかの包括的な分析

序文この記事は、サードパーティのモジュールをロードせずにNginxで処理できることのみに焦点を当てて...

SQL IDENTITY_INSERT ケーススタディ

一般的に、データ テーブル内の列を ID 列として設定すると、ID 列の表示値を手動で ID 列に挿...

一定時間後にNavicatがデータベースから自動的に切断される問題の解決方法

これは、データベース サーバーが、接続が多すぎるのを避けるために、一定時間非アクティブな状態が続くと...

フローティング要素が親要素の高さを崩す原因と解決策の詳細な説明

フローティング要素は、親要素の高さを縮小します。要素を float float:left/right...

MySQL サービスを起動できない問題の解決策を含む MySQL 5.7.17 インストール チュートリアル

.net 開発に関しては、Microsoft の SQL Server データベースに精通しており、...

サーバー同時実行数の推定式と計算方法

最近、サーバーのストレステストを再度行う必要が出てきました。ここでは、最近学んだ見積もりスキームと見...

React 合成イベントの説明

目次入力ボックスをクリックして開始します拡張機能入力ボックスをクリックすると複数のイベントが発生しま...

Web ページのエンコーディングで gbk や gb2312 ではなく utf-8 が使用されるのはなぜですか?

選択肢がある場合は、UTF-8を使用することをお勧めします。実際、Windows システム自体のプロ...

複数の無関係なテーブルからデータをクエリし、MySQL でページングする方法

MySQL 複数の無関係なテーブルクエリデータとページング機能要件主キーと外部キーの関連付けがない ...

CSS ハート型読み込みアニメーションのソースコードの実装

さっそく、コードをお見せしましょう。コードは非常にシンプルなので、勉強すれば理解できるようになります...

docker+gitlab+gitlab-runnerの詳細なデプロイメント

環境サーバー: centos7クライアント: ウィンドウCentos7 に docker+gitla...

HTMLフォーム要素の詳しい解説(パート1)

HTML フォームは、さまざまな種類のユーザー入力を収集するために使用されます。 HTML フォー...

Nginx10m+の高並列カーネル最適化に関する簡単な説明

高い同時実行性とは何ですか?デフォルトの Linux カーネル パラメータは、最も一般的なシナリオ向...

Centos8.3、dockerデプロイメントspringbootプロジェクトの実際のケース分析

導入現在、k8s は非常に人気があり、それについて学ぶために本を購入しました。しかし、k8s では数...