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サイト、経験などを含む)

推薦する

MySQL テーブルとデータベースでデータを分割する方法

目次1. 縦方向のスライス1.1 垂直データベース1.2 垂直テーブル分割2. 水平(横断)セグメン...

Vue ショッピングカートのケーススタディ

目次1. ショッピングカートの例2. コードの実装3. まとめ1. ショッピングカートの例一連の学習...

Django がローカル MySQL データベースに接続する手順 (pycharm)

ステップ1:setting.pyでデータベースを変更する # データベースを構成する DATABAS...

Apache ab を使用して HTTP パフォーマンス テストを実行する

MacにはApache環境が付属していますターミナルを開き、sudo apachectl -v と入...

JavaScript Alert関数の実行順序の詳細な説明

目次質問分析する解決するAlert() 関数を置き換えるsetTimeOut関数まとめ質問数日前、J...

SSHを使用してDockerサーバーに接続する方法

初めて docker に触れたときは本当に戸惑いました。初心者向けのチュートリアルを長い間読みました...

MySQL information_schema データベースの詳細な説明

1. 概要information_schema データベースは performance_schema...

WeChatミニプログラムマップの使い方を詳しく解説

この記事の例では、WeChatアプレットマップで使用される具体的な実装コードを参考までに共有していま...

Debian ベースの Linux システム ソフトウェア インストール コマンドの詳細な説明 (推奨)

Debian の紹介Debian は、広い意味では、フリーなオペレーティング システムの作成に専念...

ドメイン名を nginx サービスにバインドする方法

nginx.conf で複数のサーバーを設定します。 http リクエストを処理する際、nginx ...

Linuxはjoin -a1を使用して2つのファイルを結合します

次の2つのファイルを結合するには、それらを結合して1.txtに結合します。 # 1.txt ジェリー...

JavaScriptプロトタイプチェーン図のまとめと実践

目次プロトタイプチェーンプロトタイプチェーンに基づいてシンプルなJQueryライブラリを実装すること...

vue-tableは追加と削除を実装します

この記事では、vue-table の追加と削除の具体的なコードを参考までに紹介します。具体的な内容は...

アダプティブ Web デザインを実現する方法に関する関連知識ポイントの要約

「アダプティブ Web デザイン」はどのように機能しますか?実はそれほど難しいことではありません。 ...

Vue 3.0 カスタムディレクティブの使い方

目次1. カスタム指示1. グローバルカスタム指示を登録する2. グローバルカスタム指示を使用する3...