純 CSS 打造自適應影片播放器

自適應影片播放器
自適應影片播放器

自適應網頁設計已經普及於各個網站上,當網頁需要嵌入影片時,也需要能隨著使用者瀏覽的解析度、寬度不同而有所變化。

因此,打造自適應影片播放器的需求如雨後春筍般冒出,這篇文將介紹我目前最常用以純 CSS 來達成自適應影片播放器。

相較於 JavaScript,CSS 在瀏覽器上有比較卓越的效能,所以我偏好能用 CSS 解決就不使用 JavaScript。不過純 CSS 版本的彈性不比 JavaScript。當影片長寬比不相同時,CSS 都要額外補寫新的。

HTML 的結構是:

<div class="video-container video-ratio-16by9"> <iframe></iframe> </div>

HTML 原理是以外包一個容器(Container),先用容器透過 CSS 劃出空間後再將裡面的影片(因為原理相同,所以 iframe 或 video 都適用)以 CSS 填滿整個空間達到自適應的效果。

CSS 原理很簡單,利用 padding 的百分比來自動計算長寬比。向下留白(padding-bottom)以百分比的方式定義會使瀏覽器以該 node 的寬作為基準,依照指定的比例算出高度。

以一個 16:9 的影片來說,9 除以 16 等於 0.5625,也就是 56.25%。所以將 padding-bottom 設定為 56.25% 就能畫出一個 16:9 的容器。4:3 的同理。

綜合以上,可以寫出以下 CSS:

.video-container { display: block; position: relative; width: 100%; height: 0; overflow: hidden; box-sizing: border-box } .video-container iframe, .video-container video { position: absolute; top: 0; left: 0; border: none; width: 100%; height: 100% } .video-ratio-16by9 { padding-bottom: 56.25% /* 9/16 */ } .video-ratio-4by3 { padding-bottom: 75% /* 3/4 */ }

最後,想要看實際的效果可以到「如何讓 YouTube c.c. 字幕與眾不同」這裡,文章中最上面的 YouTube 影片就是用這個方法達成的。

熱門文章

《Minecraft》快捷鍵一覽表

《Minecraft》快捷鍵一覽表

鍵盤 嗨!歡迎造訪我的部落格。良好的運用快捷鍵可以讓一件事在短時間內完成,如:整理箱子,而當箱子內的物品不是擺放整齊的單個拿出又太花時間導致你不想整理?或是對箱子的整潔有強迫症每次都會整理卻找不到比較…
前往閱讀 前往閱讀右箭頭
《Pokémon Go》3 個途徑取得神奧之石

《Pokémon Go》3 個途徑取得神奧之石

神奧之石(Sinnoh Stone,又稱神奧石)是 Pokémon Go 的寶可夢進化道具。許多第四代寶可夢都需要用到神奧石才能獲得。神奧石稀有,獲得途徑也有限,遊戲中目前一共有三個途徑。
前往閱讀 前往閱讀右箭頭
《崩壞:星穹鐵道 & 原神》國際服最新的兌換碼、前瞻兌換碼

《崩壞:星穹鐵道 & 原神》國際服最新的兌換碼、前瞻兌換碼

2.1 前瞻直播 兌換碼依照過期時間近到遠以及更新時間新到舊的順序排序;沒有標註過期時間的代表未知;如果連結的顏色是灰色的,代表你可能兌換過了。如果有需要也可以 點這裡前往官方的兌換頁 。 ST3SHPNL…
前往閱讀 前往閱讀右箭頭
《特戰英豪 Valorant》預設快捷鍵

《特戰英豪 Valorant》預設快捷鍵

特戰英豪 特戰英豪是我第一個接觸的射擊競技遊戲,因為我本身對於射擊遊戲非常不上手,瞄準、發射、槍的後座力、等等的影響精準度的變數實在太多。雖然我覺得特戰英豪的鍵位提示、說明、指示、等等做的很清楚,但還…
前往閱讀 前往閱讀右箭頭
《原神》楓丹七天神像升級需要的水神瞳數量表

《原神》楓丹七天神像升級需要的水神瞳數量表

楓丹廷 / Source: Fandom 楓丹是原神旅行者第五個拜訪的國家,是水的國度,第一個潛水的玩法也在這裡開始。供奉楓丹的七天神像需要一定數量的水神瞳才能供奉至滿級,也就是 10 級。這裡將統整…
前往閱讀 前往閱讀右箭頭
7 個能輕鬆找到理想 Minecraft Skin 的網站

7 個能輕鬆找到理想 Minecraft Skin 的網站

忍者外觀 / pxfuel Minecraft(麥塊、當個創世神、我的世界)是一個可以自訂外觀(skin、皮膚)的遊戲。Minecraft 外觀千百萬種,由許多玩家協力製作出數量如此龐大的外觀,想在其…
前往閱讀 前往閱讀右箭頭
《原神》須彌七天神像升級所需的草神瞳數量一覽表

《原神》須彌七天神像升級所需的草神瞳數量一覽表

蘭那羅:蘭那庫拉 有需要須彌所有草神瞳的位置可以參考原神官方的提瓦特互動地圖,可從 HoYoLAB 進入。目前完整蒐集完會是 10 級神像和 1 個草神瞳(一共 271 顆草神瞳)。
前往閱讀 前往閱讀右箭頭
《刀劍亂舞》全刀種鍛刀時間以及鍛刀配方

《刀劍亂舞》全刀種鍛刀時間以及鍛刀配方

山姥切国広 孫六兼元期間限定鍛刀開跑中。刀劍亂舞九周年!有一組 兌換碼 可以使用。 刀劍亂舞中,鍛刀的時間與投入的資源、最終成品是有關係的: 投入的資源愈多,鍛刀的時間愈長(純屬趨勢並非絕對) 鍛刀時間愈長,成…
前往閱讀 前往閱讀右箭頭
如何進化《Pokémon Go》伽勒爾型態的哭哭面具至死神板

如何進化《Pokémon Go》伽勒爾型態的哭哭面具至死神板

Ghost 562 哭哭面具 デスマス Yamask 《Pokémon 劍/盾》為寶可夢的世界帶來第八代新的寶可夢,當然也連帶影響 Pokémon Go 的遊戲內容。伽勒爾地區是《Pokémon 劍/盾》的主…
前往閱讀 前往閱讀右箭頭