


[CSS3] CSS の object-fit プロパティと object-position プロパティの使用(译)_html/css_WEB-ITnose
元のアドレス: https://www.sitepoint.com/using-css-object-fit-object-position-properties/
タイトル: CSS のオブジェクトの使用-fit および object-position プロパティ - CSS object-fit および object-position プロパティの使用
Web サイトでビデオおよび画像リソースが使用されている場合、位置の問題が発生する可能性があります。
たとえば、CSS で画像の幅を明示的に指定しました。幅がパーセンテージまたは単位比として指定され、高さが適応自動に設定されている場合、ブラウザ ウィンドウのサイズを変更しても画像のアスペクト比が維持されます。
ただし、スペースが限られており、画像の高さに制限を設定する必要がある場合があります。次に、ブラウザのウィンドウ サイズを変更すると、画像のアスペクト比に確実に影響します。
今説明した問題を含め、画像のサイズとアスペクト比に関連する多くの問題は、CSS の object-fit プロパティと object-position プロパティを使用して解決できます。
これらのプロパティは、よりよく知られている背景サイズおよび背景位置プロパティに似ています。したがって、これまで聞いたことがなくても、それらがどのように機能するかを理解するのにそれほど問題はありません。
両方の属性は要素を置換するために使用されます。ただし、物事をシンプルにするために、この記事では置換要素の代わりに画像を使用します。
object-fit と object-position を使用する理由
background-size と background-position が使用できるのに、なぜこれら 2 つのプロパティを使用する必要があるのか疑問に思われるかもしれません。実際、少なくとも 2 つの正当な理由があります。
まず、このシナリオを考えてみましょう。記事の一部である画像リソースがあります。上記のように CSS で画像のサイズを設定した場合、ブラウザ ウィンドウのサイズを変更すると画像のアスペクト比が崩れます。このような場合、単純な img タグでは何もできないため、div 経由でbackground-sizeプロパティとbackground-positionプロパティを使用する傾向があります。
もう 1 つの理由は、object-fit 属性と object-position 属性は適用できるが、background 属性は video 要素に適用できないためです。したがって、ビデオ要素を表示する必要がある場合は、object-fit と object-postion が唯一のオプションです。
objcet-fit 属性について
この属性は、画像やビデオなどの置換コンテンツがコンテナ内でどのようにレイアウトされるかを決定します。可能な値は 5 つあります:
- fill
- contains
- cover
- none
- scale-down
これらは次のように使用されます:
.fit-image { object-fit: fill|contain|cover|none|scale-down;}
fill 値を使用すると、画像がコンテナーを完全に埋めます。以下の例では、画像の高さがボックスの高さ内に正確に収まります。これは object-fit のデフォルト値でもあります。
CodePen の「Pen Object Fit: Fillby SitePoint (@SitePoint)」を参照してください。
contains 値は、画像がコンテナーのアスペクト比に適合するように画像を調整します。 。これには 2 つの目的があります。画像をコンテナ内に保持しながら、画像の歪みを回避します。画像がコンテナを完全に埋めていない場合は、空の部分をデフォルトの背景色で埋めます。
CodePen の Pen Object Fit: Containby SitePoint (@SitePoint) を参照してください。
画像のサイズがわからないが、既知のコンテナーに画像をフィットさせたい場合。 width には、contain 値を使用できます。
アスペクト比を維持しながら画像をコンテナに完全に埋めたい場合は、cover 属性を使用する必要があります。以下の例では、最小部分がコンテナ内に完全に収まるように画像が拡大縮小され、コンテナからはみ出す部分は切り取られます。
CodePen の Pen Object Fit: Coverby SitePoint (@SitePoint) を参照してください。
画像の元のサイズを表示し、コンテナーによって設定されたサイズを無視するには、none を使用する必要があります。以下の例では、画像のサイズは変更されていません。ただし、画像の一部がコンテナの外にはみ出している場合、その部分は切り取られます。
CodePen の SitePoint (@SitePoint) による Pen Object Fit: None を参照してください。
最後のオブジェクト フィット値はスケールダウンです。名前が示すように、画像を縮小します。これは、画像に応じて none または include に設定した後、最小値が調整されたサイズとして使用されることを意味します。言い換えれば、イメージ内のどの寸法もコンテナ内のそれぞれの寸法よりも大きくない場合、何も有効になりません。
CodePen の SitePoint ( @SitePoint) による Pen Object Fit:scale-down を参照してください。
object-position プロパティ
前に見たように、cover プロパティは Fills になります。画像の元のアスペクト比を維持しながらコンテナーを作成します。画像もデフォルトでは中央に表示されます。焦点が中心点にある場合、これは理にかなっています。しかし、焦点が中心点ではない場合はどうなるでしょうか?
この時点では、objcet-position 属性が役に立ちます。これは、background-position と同じように機能します。次のコードは、画像の配置を左上に設定します。
.zero-zero { object-position: 0px 0px;}
你可以通过使用百分比来指定图片的位置而不仅仅是像素。例如, object-position:0% 0%就是左上角而 object-position: 100% 100%就是右下角。使用百分比在你不知道图片的尺寸时很有用。
当图像的宽高比和你的容器很相似的时候,设置 object-position并不会带来什么变化。但是,但宽高比不一样的时候这会带来很好地结果。下面的代码可以证明我的观点。
See the Pen GZewMJby SitePoint ( @SitePoint) on CodePen.
在第二个案例中通过设置 position 为 top-left,使得太阳重新变回焦点。
还有一件事值得一提, object-position属性可以做成动画效果,如果使用得当也能产生让人眼前一亮的效果。下面是一段例子:
img { /* other CSS here... */ object-fit: cover; object-position: 0% 0%; animation: ltr 5s alternateinfinite;} @keyframes ltr { 0% { object-position: 0% 0%; } 25% { object-position: 20% 0%; } 100% { object-position: 100% 100%; }}
在这段代码中,我把图像的位置作为关键帧动画,正如你所看,最后的效果看起来也不错。
See the Pen Animating the object-position Propertyby SitePoint ( @SitePoint) on CodePen.
这也可以当成视频效果使用,想象从一个人移动到另一个人的情况。
浏览器支持和 Polyfills
虽然这些属性非常有用,但你能否使用它们还依赖于 浏览器的支持。 object-fit除了 IE/Edge 外被所有主流浏览器支持,而 object-position除了 IE/Edge 和 Safari 外被所有主流浏览器支持。
一般来说,你可能只需要 object-fit属性。如果你愿意牺牲一部分用户的体验你可以使用该属性。如果你需要支持古老的浏览器,你可以使用 Federico Brigante 开发的 polyfill。
结论
我希望你能够希望这个教程以及附带的例子。如果我遗漏了什么或者有你想要补充的,请通过留言让我知道。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。1。HTMLは、Webページ構造を定義し、2。CSSはWebページスタイルを制御し、3。JavaScriptは動的な動作を追加します。一緒に、彼らは最新のウェブサイトのフレームワーク、美学、および相互作用を構築します。

HTMLの将来の傾向はセマンティクスとWebコンポーネントであり、CSSの将来の傾向はCSS-in-JSとCSShoudiniであり、JavaScriptの将来の傾向はWebAssemblyとServerLessです。 1。HTMLセマンティクスはアクセシビリティとSEO効果を改善し、Webコンポーネントは開発効率を向上させますが、ブラウザの互換性に注意を払う必要があります。 2。CSS-in-JSは、スタイル管理の柔軟性を高めますが、ファイルサイズを増やす可能性があります。 CSShoudiniは、CSSレンダリングの直接操作を可能にします。 3. Webassemblyブラウザーアプリケーションのパフォーマンスを最適化しますが、急な学習曲線があり、サーバーレスは開発を簡素化しますが、コールドスタートの問題の最適化が必要です。

HTMLの将来は、無限の可能性に満ちています。 1)新機能と標準には、より多くのセマンティックタグとWebComponentsの人気が含まれます。 2)Webデザインのトレンドは、レスポンシブでアクセス可能なデザインに向けて発展し続けます。 3)パフォーマンスの最適化により、応答性の高い画像読み込みと怠zyなロードテクノロジーを通じてユーザーエクスペリエンスが向上します。

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。HTMLはコンテンツ構造を担当し、CSSはスタイルを担当し、JavaScriptは動的な動作を担当します。 1。HTMLは、セマンティクスを確保するためにタグを使用してWebページの構造とコンテンツを定義します。 2。CSSは、セレクターと属性を介してWebページスタイルを制御して、美しく読みやすくします。 3。JavaScriptは、動的でインタラクティブな関数を実現するために、スクリプトを通じてWebページの動作を制御します。

HTML、CSS、およびJavaScriptは、最新のWebページを構築するためのコアテクノロジーです。1。HTMLはWebページ構造を定義します。2。CSSはWebページの外観に責任があります。

強力な機能と優れたユーザーエクスペリエンスを備えたWebサイトを構築するには、HTMLだけでは十分ではありません。次のテクノロジーも必要です。JavaScriptは、Webページに動的とインタラクティブ性を与え、リアルタイムの変更がDOMを操作することで達成されます。 CSSは、美学とユーザーエクスペリエンスを向上させるために、Webページのスタイルとレイアウトを担当しています。 React、Vue.JS、Angularなどの最新のフレームワークとライブラリは、開発効率とコード組織構造を改善します。

この記事では、HTMLタグの違いについて説明します。、、、、、、、およびプレゼンテーションの使用とSEOとアクセシビリティへの影響に焦点を当てています。

HTMLの機能は、Webページの構造とコンテンツを定義することであり、その目的は、情報を表示するための標準化された方法を提供することです。 1)HTMLは、タイトルやパラグラフなどのタグや属性を使用して、Webページのさまざまな部分を整理しています。 2)コンテンツとパフォーマンスの分離をサポートし、メンテナンス効率を向上させます。 3)HTMLは拡張可能であり、カスタムタグがSEOを強化できるようにします。
