目次
基本概念
画像をコンテナに入れる
3つの方法
アスペクト比の影響
結論
非表示の比例関係
参考記事
ホームページ ウェブフロントエンド htmlチュートリアル CSSの数式 Contain&Cover_html/css_WEB-ITnose

CSSの数式 Contain&Cover_html/css_WEB-ITnose

Jun 21, 2016 am 09:05 AM

誰もが背景サイズの contains と cover の使用方法を理解する必要があります。しかし、そこには興味深い数学的関係もいくつかあります。

基本概念

上記は、rimage (画像のアスペクト比) と rviewport (コンテナのアスペクト比) の定義です。

画像をコンテナに入れる

3つの方法

  • stretch: 画像の幅と高さをコンテナの幅と高さに強制的に設定します

注: h'image 、w'image、r'imageは変更後の画像の高さ、幅、アスペクト比です。以降の記事でもこれらの名詞は同じ意味を持ちますので、説明は省略します。

それでは、画像がコンテナに配置された後に変形しないようにするには、どのような数学的関係を維持できるでしょうか?
答えも明らかです:

r'image =rimage

次に紹介する 2 つの方法は変形しません。つまり、上記の式は既知の条件であることを意味します。

  • contain : 画像をコンテナーに収まるように、空白のスペースも残しながら画像をコンテナーに「詰め込み」ます。映画を見るときの「ブラックエッジ」と同じです。

    contain メソッドの場合、コンテナに配置された後の画像の高さ (h'image) のみが不明です。計算してみましょう:

contains がなぜこのようになるのかわからない場合は、まずはご覧ください。background-size

  • cover: 画像でコンテナを「覆う」こともできます。

    はcontainに対応しており、coverメソッドはw'imageを計算する必要があります

アスペクト比の影響

お気づきかどうかわかりませんが、containとh'imageを導出したとき先ほどのカバーの w'image 使用される画像のアスペクト比は、常にコンテナーのアスペクト比よりも大きくなります。

これは何につながりましたか?そのため、導出に使用した条件 3 は正しくない可能性があります。
ええと、それを言うと少しめまいがします。写真を見てください:

ご覧のとおり、ここではrimage > rviewportの状況のみを考慮しました。

結論

rimage < rviewport を考慮して、コンテナに配置された後の画像の幅と高さは次のとおりです。

このようにして、背景サイズ属性 ,high を適用した後のコンテナ内の画像。

非表示の比例関係

次に、画像をコンテナに配置した後の画像とコンテナの間の非表示の比例関係について説明します。これにより、この関係を使用して、コンテナの変更に応じて画像も変更できるようになります。
hidden は 1 未満の比率であることに注意してください。このように設定する理由は後で説明します。

包含レイアウトを例として取り上げます。rimage > rviewport:

そしてカバー レイアウトを例として取り上げます。

このようにして 4 つの可能性がわかりますが、上記の w'image と h'image を導出したことを忘れないでください。

したがって、hidden の最終結果は次のようになります:

hidden の結果は 2 つだけ、

rimage / rviewport

または

r viewport /rimage

だけであり、この数値は 1 未満であることがわかります (これは上記により決定されます)。

つまり、hidden の計算は次のように簡略化できます:

追記

長い間取り組んできた後、どうすればこれができるのかと考えているかもしれません。なぜ特定の幅と高さを取得する必要があるのでしょうか?

私も思ったのですが、写真だけだと、全部ナンセンスな気がします。しかし、それが DOM だったらどうなるでしょうか?これは単なるレイアウト方法ですか?

分からないけど、知識ってこういうこともあるのね。必要な場合にのみ便利です。

参考記事

CSS ? Contain & Cover

==========

ブログの購読を歓迎 =_=

=========

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

HTMLは初心者のために簡単に学ぶことができますか? HTMLは初心者のために簡単に学ぶことができますか? Apr 07, 2025 am 12:11 AM

HTMLは、簡単に学習しやすく、結果をすばやく見ることができるため、初心者に適しています。 1)HTMLの学習曲線はスムーズで簡単に開始できます。 2)基本タグをマスターして、Webページの作成を開始します。 3)柔軟性が高く、CSSおよびJavaScriptと組み合わせて使用​​できます。 4)豊富な学習リソースと最新のツールは、学習プロセスをサポートしています。

HTML、CSS、およびJavaScriptの役割:コアの責任 HTML、CSS、およびJavaScriptの役割:コアの責任 Apr 08, 2025 pm 07:05 PM

HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

HTMLでの開始タグの例は何ですか? HTMLでの開始タグの例は何ですか? Apr 06, 2025 am 12:04 AM

Anexampleapalofastartingtaginhtmlis、それはaperginsaparagraph.startingtagsaresentionentientiontheyinitiateelements、definetheirtypes、およびarecrucialforurturingwebpagesandcontingthomedomを構築します。

HTML、CSS、およびJavaScriptの理解:初心者向けガイド HTML、CSS、およびJavaScriptの理解:初心者向けガイド Apr 12, 2025 am 12:02 AM

webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Apr 04, 2025 pm 11:54 PM

GiteEpages静的Webサイトの展開が失敗しました:404エラーのトラブルシューティングと解像度Giteeを使用する

WebアノテーションにY軸位置の適応レイアウトを実装する方法は? WebアノテーションにY軸位置の適応レイアウトを実装する方法は? Apr 04, 2025 pm 11:30 PM

Y軸位置Webアノテーション機能の適応アルゴリズムこの記事では、単語文書と同様の注釈関数、特に注釈間の間隔を扱う方法を実装する方法を探ります...

CSS3とJavaScriptを使用して、クリック後に周囲の写真を散乱および拡大する効果を実現する方法は? CSS3とJavaScriptを使用して、クリック後に周囲の写真を散乱および拡大する効果を実現する方法は? Apr 05, 2025 am 06:15 AM

画像をクリックした後、散乱と周囲の画像を拡大する効果を実現するには、多くのWebデザインがインタラクティブな効果を実現する必要があります。特定の画像をクリックして周囲を作成してください...

Routerフォルダーの下のindex.jsファイルでvue.use(vuerouter)を呼び出す必要があるのはなぜですか? Routerフォルダーの下のindex.jsファイルでvue.use(vuerouter)を呼び出す必要があるのはなぜですか? Apr 05, 2025 pm 01:03 PM

Vueアプリケーションを開発するときに、ルーターフォルダーの下にindex.jsファイルにvuerouterを登録する必要性があるため、ルーティング構成で問題が発生することがよくあります。特別...

See all articles