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

CSS:圖像贏了& # 39;當放置在flexbox中時,t放大超過其原始分辨率

呂致盈2年前9瀏覽0評論

我正在編寫一個UI,其中我需要顯示一個圖像,并在頂部有一個與其大小匹配的svg。為了做到這一點,我將這兩個元素包裝在一個容器中,并使它們占據寬度:100%和高度:100%。一切都包含在flexbox列中,因為我需要放置更多的UI元素。 我想讓這個容器調整大小,以適應盡可能多的高度或寬度,同時保持縱橫比固定。

在下面的玩具示例中,我幾乎得到了一個完整的解決方案:

<!DOCTYPE html>
<header>
    <link rel="stylesheet" href="style.css">
</header>

<html>
    <body>
        <div class="column">
            <div class="container">
                <img src="bitmap.png" alt="my_image">
                <svg>
                    <rect x="0" y="0" width="100%" height="100%" 
                    style="fill:none;stroke-width:6;stroke:rgb(0,0,255)" />
                </svg>
            </div>
        </div>
    </body>
</html>

html, body {
    height: 100%;
}
body {
    padding: 0;
    margin: 0;
}
.column {
    height: 100%;
    width: 50%;
    background-color: lightgray;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.container {
    position: relative;
    max-height: 100%;
}
.container img {
    object-fit: contain;
    height: 100%;
    width: 100%;
}
.container svg {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
}

您可以看到,當受到寬度或高度的限制時,它會適當地調整大小,使svg始終位于圖像的頂部。但是,當您增加尺寸時,圖像會在達到其原始分辨率時停止增長.. 如果在容器中設置屬性flex-grow: 1,圖像也會按照我想要的方式增長,但是svg不會再正確地覆蓋圖像。

這是我在玩具示例中使用的原始720x540圖像,如果你想自己嘗試的話。如果你想解決這個問題,先謝謝你!:)

# # #您可以使用以下CSS來調整容器的大小,以適應盡可能多的可用高度或寬度,同時保持縱橫比不變:

.container {
  display: flex;
  flex-direction: column;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

display: flex屬性將使容器成為flex容器,這允許您控制其子容器的布局。flex-direction: column屬性將使容器的子容器從上到下排列成一列。max-width: 100%和max-height: 100%屬性將分別調整容器的大小,以適應盡可能多的可用寬度或高度。object-fit: contain屬性將確保調整容器內的圖像和SVG的大小以適合容器,同時保持它們的縱橫比固定。

<div class="container">
  <img src="image.jpg" />
  <svg viewBox="0 0 100 100">
    <circle cx="50" cy="50" r="25" fill="red" />
  </svg>
</div>

這將創建一個包含圖像和SVG的容器。圖像和SVG將調整大小以適合容器,同時保持它們的縱橫比不變。容器將調整大小以適應盡可能多的可用寬度或高度。