CSSはフロントエンドの画像変形の問題を完璧に解決します

CSSはフロントエンドの画像変形の問題を完璧に解決します

Toutiao IT School で、CSS がフロントエンドの画像変形の問題を完璧に解決するという記事を見たので、それを録画して共有しました。

1. 画像の幅または高さをコンテナの幅または高さと同じにし、余分な部分を切り取って、画像を中央に配置します。

<スタイル タイプ="text/css">
div{
    幅: 200ピクセル;
    高さ: 200px;
    オーバーフロー: 非表示;
    境界線: 2px 実線の赤;
    位置: 相対的;
}
画像{
    幅: 100%;
    位置: 絶対;
 上位: 50%;
 左: 50%;
 変換: translate(-50%, -50%); 
}
</スタイル>
<div>
    <img src="1.png">
</div>
<br>
<div>
    <img src="1.jpg">
</div>

効果画像:

画像の幅が制限されていて、高さがコンテナの高さ以上である場合、コンテナ全体を埋め尽くします。ただし、画像の高さがコンテナの高さより小さい場合は、空白スペースが表示されます。高さが固定されている場合も同様です。この方法は最もシンプルで実用的であり、背景カットと組み合わせるとさらに完璧になります。

2. 画像が常にコンテナ内に中央に表示されていることを確認します。この方法は画像を切り取らないため、上記の方法のアップグレード版と言えます。

<スタイル タイプ="text/css">
div{
    幅: 200ピクセル;
    高さ: 200px;
    境界線: 2px 実線の赤;
    位置: 相対的;
}
画像{
    最大幅: 100%;
    最大高さ: 100%;
    位置: 絶対;
 上位: 50%;
 左: 50%;
 変換: translate(-50%, -50%); 
}
</スタイル>
<div>
    <img src="1.png">
</div>
<br>
<div>
    <img src="1.jpg">
</div>

効果図は以下のとおりです。

幅がコンテナを超えている場合でも、高さがコンテナを超えている場合でも、幅と高さがコンテナを超えていない場合でも、切り取られることなくすべてコンテナの中央に表示できることがわかります。

3. 画像を背景にします。背景サイズを変更することで、コンテナに表示される画像の効果を任意に変更できます。操作は最も便利です:

<スタイル タイプ="text/css">
div{
    幅: 200ピクセル;
    高さ: 200px;
    境界線: 2px 実線の赤;
    背景繰り返し: 繰り返しなし;
    背景の位置: 中央;
    背景サイズ: カバー;
}
</スタイル>
<div style="background-image: url(1.jpg);"></div>

効果図は以下のとおりです。

上の図の背景サイズを変更すると、方法 1 と方法 2 の両方を簡単に実装できることがわかります。さらに、最後のカバー効果は最も理想的です。つまり、中央に表示され、コンテナー全体を満たし、変形しません。 SEO を考慮しない場合でも、この方法は非常に簡単に使用できます。ただし、情報サイトや写真展などの場合は、この方法を使用しないでください。そうしないと、写真が検索エンジンに含まれることが難しくなります。

4. SEOを考慮しながら3番目の方法の効果を実現できる方法があれば素晴らしいと思います。ここで紹介するのは、object-fit と object-position です。こう理解すると、object-position は background-position と同等であり、デフォルト値は 50% 50% で中央揃えとなるため、通常は記述されません。object-fit が追加されると、デフォルトで中央揃えになります。 object-fit は、画像の塗りつぶし方法である background-size と同等です (ここでは画像サイズではありません)。

<スタイル タイプ="text/css">
div{
    幅: 200ピクセル;
    高さ: 200px;
    境界線: 2px 実線の赤;
}
画像{
    幅: 100%;
    高さ: 100%;
    オブジェクトフィット: カバー;
}
</スタイル>
<div>
    <img src="1.jpg">
</div>

効果図は以下のとおりです。

上の写真から、結果は背景方法で設定された効果とほぼ同じであることがわかります。これは背景方式のレプリカとも言え、背景画像が検索エンジンに含まれないというデメリットも回避できます。 IE の互換性を考慮しないのであれば、この方法を使用してみてはいかがでしょうか?お母さんは、編集者がランダムに写真をアップロードすることを心配する必要がなくなりました。

注意: 画像には幅と高さを設定する必要があります。そうしないと、object-fit は無効になります。画像をコンテナと同じ幅と高さに設定するだけです。コンテナをオーバーフローさせて非表示に設定する必要はなく、object-fit によって画像の幅と高さを超える部分が自動的に非表示になります。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

<<:  HTML CSS の 3 つの一般的なスタイル セレクター

>>:  フロントエンド開発一般マニュアル(ツール、Webサイト、経験などを含む)

推薦する

Tomcat でサーブレット URL パターンを構成する際の問題の詳細な説明

tomcat の web.xml を構成する場合、サーブレットは比較的重要な問題です。ここでは、サー...

Raspberry Pi 3B+ に 64 ビット Ubuntu システムと Docker ツールをインストールする詳細な手順

Raspberry Pi 3B に 64 ビット アプリケーション (64 ビット JDK など) ...

優秀なウェブ開発者が開発スキルを向上させるために知っておくべき10のこと

「開発とは、単にコードを書くだけではない」というのは、3EV の Dan Frost 氏の言葉です。...

MySQL の遅いクエリとクエリ再構築方法の記録

序文スロークエリとは何か、またスロークエリを最適化するにはどうすればよいか。以下では、これら 2 つ...

MySQLのビューの詳細な説明

ビュー: MySQL のビューはテーブルと多くの類似点があります。ビューも複数のフィールドと複数のレ...

Linux で killall コマンドを使用してプロセスを終了する 8 つの例

Linux コマンドラインには、プロセスを強制終了するためのコマンドが多数用意されています。たとえば...

Apache クロスドメイン リソース アクセス エラーの解決策

多くの場合、大規模および中規模の Web サイトでは、静的リソース (フォント ファイル、画像など)...

WeChatミニプログラムページで値を返す4つの解決策のまとめ

目次使用シナリオ解決1. globalDataを使用して実装する2. ローカルキャッシュストレージを...

FastApi+Vue+LayUIを使用してフロントエンドとバックエンドを分離するサンプルコード

目次序文プロジェクト設計後部フロントエンドプロジェクトを実行する質疑応答序文これまでの API 開発...

Docker で Nginx イメージ サーバーを構築する方法

序文一般的な開発では、画像をディレクトリにアップロードし、ディレクトリとファイル名を連結してデータベ...

mysqlとnavicat間の接続を確立する際の1251エラーを解決する

コンピュータを再インストールし、最新バージョンのMySQLデータベースをインストールしました。その結...

HTML の相対パスと絶対パスの違いの分析

HTML 初心者は、ファイルを正しく参照する方法という問題によく遭遇します。たとえば、HTML ペー...

一般的な nginx コマンドをシェル スクリプトに組み込む方法の詳細な説明

1. nginxシェルスクリプトを保存するフォルダを作成する /usr/local/タスク/ngin...