色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

為什么& # 39;t對象適合在flexbox中工作?

錢浩然2年前7瀏覽0評論

我用flex給了幾列相等的寬度。每個都包含img標簽,我希望這些圖像展示適合的對象:封面尺寸。

.container {
  display: flex;
  flex-direction: row;
  width: 100%;
}
.test {
  flex: 1;
  margin-right: 1rem;
  overflow: hidden;
  height: 400px;
}
img {
  object-fit: cover;
}

<div class="container">
  <div class="test"><img src="http://placehold.it/1920x1080"></div>
  <div class="test"><img src="http://placehold.it/1920x1080"></div>
  <div class="test"><img src="http://placehold.it/1920x1080"></div>
  <div class="test"><img src="http://placehold.it/1920x1080"></div>
</div>

從規格來看:

對象適配屬性指定如何替換 元件應安裝到根據其使用高度確定的盒子中,并且 寬度。

關鍵術語是:適合由它的使用高度和寬度建立的盒子

圖像被替換,而不是它的容器。并且由它所使用的高度和寬度建立的框與圖像本身相關,而不是它的容器。

因此,廢棄容器,讓圖像本身成為flex項目。

.container {
  display: flex;
  flex-direction: row;
  width: 100%;
}

img {
  object-fit: cover;
  flex: 1;
  margin-right: 1rem;
  overflow: hidden;
  height: 400px;
}

<div class="container">
  <img src="http://placehold.it/1920x1080">
  <img src="http://placehold.it/1920x1080">
  <img src="http://placehold.it/1920x1080">
  <img src="http://placehold.it/1920x1080">
</div>

問題是object-fit指定了如何在img中繪制圖像,但是您沒有指定這些元素的大小,只指定了它們的。考驗父母。

因此,除了Michael_B的答案之外,另一種方法是讓圖像具有與flex項目相同的大小:

img {
  height: 100%;
  width: 100%;
  object-fit: cover;
}

.container {
  display: flex;
  flex-direction: row;
  width: 100%;
}
.test {
  flex: 1;
  margin-right: 1rem;
  overflow: hidden;
  height: 400px;
}
img {
  height: 100%;
  width: 100%;
  object-fit: cover;
}

<div class="container">
  <div class="test"><img src="http://placehold.it/1920x1080"></div>
  <div class="test"><img src="http://placehold.it/1920x1080"></div>
  <div class="test"><img src="http://placehold.it/1920x1080"></div>
  <div class="test"><img src="http://placehold.it/1920x1080"></div>
</div>

對于那些不能“廢棄容器并使圖像本身成為flex項目”的人,只需添加容器級別:

<div class="display-flex">
  <div class="flex-grow position-relative">
    <div class="pos-absolute top-left-right-bottom-0">
      <img class="object-fit-cover height-width-100">

為了在不兼容的瀏覽器中支持圖像的對象適配功能,您可以創建一個具有背景圖像和背景大小的CSS類。為了讓它正確計算占用的空間,您需要包裝一個img元素并使其不可見。下面的例子。

超文本標記語言

<div class="my-image">
    <img src="path/to/my/image"/>
</div>

半鑄鋼?鋼性鑄鐵(Cast Semi-Steel)

.my-image {
    background-image: url('path/to/my/image');
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
}

.my-image > img {
    visibility: hidden;
}

使用Bootstrap 5,您可以通過這種設置實現這一點;

<div class="d-flex align-items-center justify-content-center text-center position-relative overflow-hidden vh-100">

  <!-- Put a higher z-index on this one -->
  <div class="container-fluid container-lg py-5 py-lg-10">
    <h1>Your content</h1>
  </div>

  <div class="position-absolute top-0 end-0 bottom-0 start-0">
    <img src="https://placehold.co/600x400" alt="" class="d-none d-lg-block w-100 h-100">
  </div>

</div>

如果& ltimg/>;在IE11中被拉伸到100%,然后在& ltimg/>;本身,正如這里建議的:IE11上的Flexbox:圖像無緣無故拉伸?