簡體   English   中英

如何在 div 中垂直和水平居中視頻,同時保持縱橫比和最大化可用空間

[英]How can I center a video vertically and horizontally within a div whilst maintaining aspect ratio and maximizing available space

我有一個未知大小的 div(我在示例中使用了固定高度,但這僅用於說明目的)並且我有一個未知大小的視頻,但視頻縱橫比是已知的(在本例中為 16:9)。

我想將視頻在 div 中垂直和水平居中。

我只想在可能的情況下使用 CSS 和 HTML 。 沒有 JavaScript。

視頻應始終包含在 div 中。 視頻可以拉伸或縮小,並且應該緊貼 div 但是...

必須始終保持視頻的縱橫比。 確保遵守此要求:

  • 視頻高度應盡可能與 div 的高度相同

  • 視頻寬度應盡可能與 div 的寬度相同

因此,隨着瀏覽器大小的調整,兩者的外觀應始終如下所示:

在此處輸入圖像描述

第一個圖像代表一個與視頻寬度相同但高度更大的main div。

第二個圖像代表一個main div,與視頻的高度相同,但寬度更大。

如果需要,可以使用包裝器 div。

這是我迄今為止嘗試過的,但它不起作用(請原諒我過度使用包裝器):

 div.main { width: 80%; height: 200px; background-color: pink; } div.video-wrapper-1 { height: 100%; position: relative; } div.video-wrapper-2 { width: 100%; height: 100%; } div.video-wrapper-3 { display: flex; justify-content: center; align-items: center; width: 100%; height: 100%; } div.video-wrapper-4 { display: flex; justify-content: center; align-items: center; height: 100%; aspect-ratio: 16/9;important: overflow; hidden: } video { display; block; }
 <div class="main"> <div class="video-wrapper-1"> <div class="video-wrapper-2"> <div class="video-wrapper-3"> <div class="video-wrapper-4"> <video autoplay muted controls> <source src="https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4" type="video/mp4"> </video> </div> </div> </div> </div> </div>

試試video { max-width: 100% }width: 100% / auto; . 它會有所幫助。

感謝 Kunal Tanwar 的評論,我得到了這個工作。 這是簡化的完整工作版本。

 div.main { width: 80%; height: 200px; background-color: pink; } div.video-wrapper { display: flex; justify-content: center; align-items: center; width: 100%; height: 100%; } video { display: block; max-width: 100%; max-height: 100%; }
 <div class="main"> <div class="video-wrapper"> <video autoplay muted controls> <source src="https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4" type="video/mp4"> </video> </div> </div>

您可以在視頻中使用 object-fit contains。

我不明白所有包裝紙的用途,因此已將其刪除。

 div.main { width: 80%; height: 200px; background-color: pink; } video { width: 100%; height: 100%; object-fit: contain; }
 <div class="main"> <video autoplay muted controls> <source src="https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4" type="video/mp4"> </video> </div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM