目次
object-fit と object-position を使用する理由
objcet-fit 属性について
object-position プロパティ
浏览器支持和 Polyfills
结论
ホームページ ウェブフロントエンド htmlチュートリアル [CSS3] CSS の object-fit プロパティと object-position プロパティの使用(译)_html/css_WEB-ITnose

[CSS3] CSS の object-fit プロパティと object-position プロパティの使用(译)_html/css_WEB-ITnose

Jun 21, 2016 am 08:47 AM

元のアドレス: 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。

结论

我希望你能够希望这个教程以及附带的例子。如果我遗漏了什么或者有你想要补充的,请通过留言让我知道。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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:構造、CSS:スタイル、JavaScript:動作 HTML:構造、CSS:スタイル、JavaScript:動作 Apr 18, 2025 am 12:09 AM

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

HTML、CSS、およびJavaScriptの未来:Web開発動向 HTML、CSS、およびJavaScriptの未来:Web開発動向 Apr 19, 2025 am 12:02 AM

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

HTMLの未来:ウェブデザインの進化とトレンド HTMLの未来:ウェブデザインの進化とトレンド Apr 17, 2025 am 12:12 AM

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

HTML対CSS対JavaScript:比較概要 HTML対CSS対JavaScript:比較概要 Apr 16, 2025 am 12:04 AM

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

HTML対CSSおよびJavaScript:Webテクノロジーの比較 HTML対CSSおよびJavaScript:Webテクノロジーの比較 Apr 23, 2025 am 12:05 AM

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

HTMLを超えて:Web開発のための重要なテクノロジー HTMLを超えて:Web開発のための重要なテクノロジー Apr 26, 2025 am 12:04 AM

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

< strong>< b>の違いは何ですかタグと< em>< i>タグ? < strong>< b>の違いは何ですかタグと< em>< i>タグ? Apr 28, 2025 pm 05:42 PM

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

マークアップ言語としてのHTML:その機能と目的 マークアップ言語としてのHTML:その機能と目的 Apr 22, 2025 am 12:02 AM

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

See all articles