2013-11-21 210 views
18

我有一個視頻,我希望它填充100%的寬度和100%的高度。並保持寬高比。視頻100%的寬度和高度

是否有可能兩者至少滿足100%?如果視頻的某一部分必須超出屏幕以保持寬高比,那並不重要。

HTML:

<video preload="auto" class="videot" id="videot" height="100%" preload> 
    <source src="BESTANDEN/video/tible.mp4" type="video/mp4" > 
    <object data="BESTANDEN/video/tible.mp4" height="1080"> 
     <param name="wmode" value="transparent"> 
     <param name="autoplay" value="false" > 
     <param name="loop" value="false" > 
    </object> 

CSS:

.videof, .videot { 
    width: 100% !important; 
    height: 100% !important; 
} 
+0

嘗試使用'max-width'和'max-height'來代替。通過將「寬度」和「高度」設置爲100%,您可能會拉伸視頻以適應這些確切的尺寸。 – Scott

+0

我用min-width和min-height代替,因爲max-height和width不起作用。但是現在視頻是全屏的,但寬度仍然有一個最大值;視頻大小。它不會變得更大...... – Milan

回答

6

看看您可以使用JavaScript的高度動態設置窗口100%然後使用基於視頻比率w的負左邊距對其進行居中寬度到窗口寬度。

http://jsfiddle.net/RfV5C/

var $video = $('video'), 
    $window = $(window); 

$(window).resize(function(){ 
    var height = $window.height(); 
    $video.css('height', height); 

    var videoWidth = $video.width(), 
     windowWidth = $window.width(), 
    marginLeftAdjust = (windowWidth - videoWidth)/2; 

    $video.css({ 
     'height': height, 
     'marginLeft' : marginLeftAdjust 
    }); 
}).resize(); 
+0

這不會填充寬度和高度,如果你放大窗口大小,那麼它會留下空白。所以對他的問題來說,這不是一個可接受的答案 – Chrillewoodz

+0

如果調整窗口大小,則需要調用一個函數來更改視頻大小。 jQuery:'$(window).resize(function(){console.log(「run resize function again!」);});' – duhaime

2

我使用JavaScript和CSS來實現這一目標。 JS函數需要在初始化和調整窗口時調用一次。剛剛在Chrome中進行測試。

HTML:

<video width="1920" height="1080" controls> 
    <source src="./assets/video.mp4" type="video/mp4"> 
    Your browser does not support the video tag. 
</video> 

的JavaScript:

function scaleVideo() { 
    var vid = document.getElementsByTagName('video')[0]; 
    var w = window.innerWidth; 
    var h = window.innerHeight; 

    if (w/16 >= h/9) { 
     vid.setAttribute('width', w); 
     vid.setAttribute('height', 'auto'); 
    } else { 
     vid.setAttribute('width', 'auto'); 
     vid.setAttribute('height', h); 
    } 
} 

CSS:

video { 
    position:absolute; 
    left:50%; 
    top:50%; 
    -webkit-transform:translate(-50%,-50%); 
    transform:translate(-50%,-50%); 
} 
26

通過檢查其他的答案,我使用的對象配合在CSS:

video { 
    object-fit: fill; 
} 

從MDN(https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit):

該對象適合的CSS屬性指定如何將替換元素的內容安裝到由其使用的高度和寬度確定的框中。

值:填

被替換的內容的尺寸以填充元素的內容框:該對象的具體對象大小是元素的使用寬度和高度。

+1

這對我來說最好 – Fox

+2

這會扭曲視頻爲了我。 – silvenon

0

我是新來的所有這一切。也許你可以添加/更改這個HTML代碼。不需要CSS。它的工作對我來說:)

width="100%" height="height" 
5

如果您正在尋找相當於background-size: covervideo

video { 
    object-fit: cover; 
} 

這將填充容器而不會扭曲視頻。


PS:我在這裏上延伸Leo Yu's answer

+0

挽救生命。謝謝一堆。 – Jbur43

+0

@法比安舒爾茨救生員+1 – tonkihonks13

+0

您值得擁有一枚獎牌......感謝隊友 – iceDragon