


[CSS3] Using CSS’s object-fit and object-position Properties(译)_html/css_WEB-ITnose
原文地址: https://www.sitepoint.com/using-css-object-fit-object-position-properties/
标题:Using CSS’s object-fit and object-position Properties – 使用 CSS 的 object-fit和 object-position属性
视频和图像资源用在网站的时候可能存在定位的问题。
比如说你已经在CSS中明确的指定了图片的宽度。如果宽度是以百分比或者单位比指定的,并且高度是设为自适应 auto,那么调整浏览器窗口的大小会保持图片的宽高比。
但是,有时候你只有有限的空间并且需要给图片的高度设置约束条件。那么改变浏览器的窗口大小肯定会影响图片的宽高比。
和图片尺寸及宽高比相关的很多问题,包括刚才讨论的问题,都可以用 CSS 中的 object-fit和 object-position属性解决。
这些属性和更广为人知的 background-size以及 background-position属性很相似。所以即使你以前从来没听过它们,你在接下来了解它们如何工作的过程中也不会遇到很多问题。
这两个属性都用于替换元素。但是为了简化内容,在这篇文章中我将用图片代替替换元素。
为什么使用 object-fit和 object-position
你可能会疑惑为什么在可以使用 background-size和 background-position的情况下还要要用这两个属性呢?事实上,至少有两个很好的理由。
首先,考虑这样一个场景。你有一个图像资源,而它是文章的一部分。如果像前文的描述那样在 CSS 中设定图片的尺寸,那么重新改变浏览器的窗口大小会导致图片的宽高比混乱。在这样一个情况下,你会倾向于通过 div使用 background-size和 background-position属性,因为简单的 img标签不会起到任何作用。
另一个原因是因为背景属性不能应用于视频元素而 object-fit和 object-position属性可以。因此,需要展示视频元素的时候, object-fit和 object-postion是你唯一的选择。
关于 objcet-fit属性
这个属性决定了像图像和视屏一样的替换内容如何在容器中布局。它有五个可能的值:
- fill
- contain
- cover
- none
- scale-down
它们的用法如下:
.fit-image { object-fit: fill|contain|cover|none|scale-down;}
当使用 fill值得时候,图片会完全填充容器。在下面的例子中图片的高度会完全适应盒子的高度。这也是 object-fit的默认值。
See the Pen Object Fit: Fillby SitePoint ( @SitePoint) on CodePen.
contain值通过这样一种方式来调整图片,在使图片适配容器的时候依然保持原来的宽高比。这是为了达到两个目的。它在保持图片不超出容器的同时避免了图像失真。如果图像没有完全填充容器,它会用默认的背景色填充空白部分。
See the Pen Object Fit: Containby SitePoint ( @SitePoint) on CodePen.
当你不知道图片的尺寸但是又希望能把图片装进一个已知宽度的容器的时候,你可以使用 contain值。
如果你希望图片完全填充容器同时保持它的宽高比,你应该使用 cover属性。在下面的例子中,图像会进行缩放从而使得最小的部分会完美贴合容器大小,而溢出容器的部分则会被裁剪。
See the Pen Object Fit: Coverby SitePoint ( @SitePoint) on CodePen.
为了展示图像的原始尺寸并且忽略容器设置好的的尺寸值,你应该使用 none。在下面的例子中图像没有被重新调整大小。但是,如果图像的任何部分超出了容器之外,那些部分会被裁剪掉。
See the Pen Object Fit: Noneby SitePoint ( @SitePoint) on CodePen.
最后的一个 object-fit值是 scale-down。顾名思义,它会缩小图片。这意味着它会根据图像分别被设置为 none或者 contain后,取其中最小的值作为他的调整后尺寸。换句话说,如果在我们的图像中没有尺寸比容器中各自的尺寸要大,那么 none就会生效。
See the Pen Object Fit: scale-downby SitePoint ( @SitePoint) on CodePen.
object-position属性
正如我们前面看到的一样, cover属性会在保持图像原来宽高比的情况下填充容器。而图片也会默认居中显示。在焦点是中心点的情况下这很好理解。但如果焦点并不是中心点呢?
此时 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。
结论
我希望你能够希望这个教程以及附带的例子。如果我遗漏了什么或者有你想要补充的,请通过留言让我知道。

웹 개발에서 HTML, CSS 및 JavaScript의 역할은 다음과 같습니다. 1. HTML은 웹 페이지 구조를 정의하고, 2. CSS는 웹 페이지 스타일을 제어하고 3. JavaScript는 동적 동작을 추가합니다. 그들은 함께 현대 웹 사이트의 프레임 워크, 미학 및 상호 작용을 구축합니다.

HTML의 미래는 무한한 가능성으로 가득합니다. 1) 새로운 기능과 표준에는 더 많은 의미 론적 태그와 WebComponents의 인기가 포함됩니다. 2) 웹 디자인 트렌드는 반응적이고 접근 가능한 디자인을 향해 계속 발전 할 것입니다. 3) 성능 최적화는 반응 형 이미지 로딩 및 게으른로드 기술을 통해 사용자 경험을 향상시킬 것입니다.

웹 개발에서 HTML, CSS 및 JavaScript의 역할은 다음과 같습니다. HTML은 컨텐츠 구조를 담당하고 CSS는 스타일을 담당하며 JavaScript는 동적 동작을 담당합니다. 1. HTML은 태그를 통해 웹 페이지 구조와 컨텐츠를 정의하여 의미를 보장합니다. 2. CSS는 선택기와 속성을 통해 웹 페이지 스타일을 제어하여 아름답고 읽기 쉽게 만듭니다. 3. JavaScript는 스크립트를 통해 웹 페이지 동작을 제어하여 동적 및 대화식 기능을 달성합니다.

Htmlisnotaprogramminglanguage; itisamarkuplanguage.1) htmlstructuresandformatswebcontentusingtags.2) itworksporstylingandjavaScriptOfforIncincivity, WebDevelopment 향상.

HTML은 웹 페이지 구조를 구축하는 초석입니다. 1. HTML은 컨텐츠 구조와 의미론 및 사용 등을 정의합니다. 태그. 2. SEO 효과를 향상시키기 위해 시맨틱 마커 등을 제공합니다. 3. 태그를 통한 사용자 상호 작용을 실현하려면 형식 검증에주의를 기울이십시오. 4. 자바 스크립트와 결합하여 동적 효과를 달성하기 위해 고급 요소를 사용하십시오. 5. 일반적인 오류에는 탈수 된 레이블과 인용되지 않은 속성 값이 포함되며 검증 도구가 필요합니다. 6. 최적화 전략에는 HTTP 요청 감소, HTML 압축, 시맨틱 태그 사용 등이 포함됩니다.

HTML은 웹 페이지를 작성하는 데 사용되는 언어로, 태그 및 속성을 통해 웹 페이지 구조 및 컨텐츠를 정의합니다. 1) HTML과 같은 태그를 통해 문서 구조를 구성합니다. 2) 브라우저는 HTML을 구문 분석하여 DOM을 빌드하고 웹 페이지를 렌더링합니다. 3) 멀티미디어 기능을 향상시키는 HTML5의 새로운 기능. 4) 일반적인 오류에는 탈수 된 레이블과 인용되지 않은 속성 값이 포함됩니다. 5) 최적화 제안에는 시맨틱 태그 사용 및 파일 크기 감소가 포함됩니다.

WebDevelopmentReliesonHtml, CSS 및 JavaScript : 1) HtmlStructuresContent, 2) CSSSTYLESIT, 및 3) JAVASCRIPTADDSINGINTERACTIVITY, BASISOFMODERNWEBEXPERIENCES를 형성합니다.

HTML의 역할은 태그 및 속성을 통해 웹 페이지의 구조와 내용을 정의하는 것입니다. 1. HTML은 읽기 쉽고 이해하기 쉽게하는 태그를 통해 컨텐츠를 구성합니다. 2. 접근성 및 SEO와 같은 시맨틱 태그 등을 사용하십시오. 3. HTML 코드를 최적화하면 웹 페이지로드 속도 및 사용자 경험이 향상 될 수 있습니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기
