मैं background-size:coverएक html तत्व पर <video>या जैसी कार्यक्षमता का अनुकरण कैसे कर सकता हूं <img>?
मैं इसे काम करना पसंद करूंगा
background-size: cover;
background-position: center center;
मैं background-size:coverएक html तत्व पर <video>या जैसी कार्यक्षमता का अनुकरण कैसे कर सकता हूं <img>?
मैं इसे काम करना पसंद करूंगा
background-size: cover;
background-position: center center;
जवाबों:
यह कुछ ऐसा है जिसे मैंने थोड़ी देर के लिए अपने बालों को बाहर खींच लिया, लेकिन मुझे एक शानदार समाधान मिला जो किसी भी स्क्रिप्ट का उपयोग नहीं करता है, और आप सीएसएस (9 यदि आप चयनकर्ताओं और कोष्ठक की गिनती करते हैं तो 5 लाइनों के साथ वीडियो पर एक पूर्ण कवर सिमुलेशन प्राप्त कर सकते हैं) )। इसमें 0 किनारे-मामले हैं जिनमें यह पूरी तरह से काम नहीं करता है, CSS3- संगतता की कमी है ।
आप यहां एक उदाहरण देख सकते हैं
टिमोथी के समाधान के साथ समस्या यह है कि यह स्केलिंग को सही तरीके से नहीं संभालता है। यदि आसपास का तत्व वीडियो फ़ाइल से छोटा है, तो इसे छोटा नहीं किया जाता है। यहां तक कि अगर आप वीडियो टैग को एक प्रारंभिक प्रारंभिक आकार देते हैं, जैसे कि 16px 9px तक, तो autoयह अपनी मूल फ़ाइल-आकार के न्यूनतम करने के लिए मजबूर करता है। इस पृष्ठ पर वर्तमान शीर्ष मतदान समाधान के साथ, मेरे लिए वीडियो फ़ाइल स्केल डाउन होना असंभव था, जिसके परिणामस्वरूप एक कठोर ज़ूम प्रभाव हुआ।
यदि आपके वीडियो का पहलू अनुपात ज्ञात है, जैसे कि 16: 9, तो आप निम्न कार्य कर सकते हैं:
.parent-element-to-video {
overflow: hidden;
}
video {
height: 100%;
width: 177.77777778vh; /* 100 * 16 / 9 */
min-width: 100%;
min-height: 56.25vw; /* 100 * 9 / 16 */
}
यदि वीडियो का मूल तत्व पूरे पृष्ठ (जैसे position: fixed; width: 100%; height: 100vh;) को कवर करने के लिए सेट है , तो वीडियो भी होगा।
यदि आप चाहते हैं कि वीडियो भी केंद्रित हो, तो आप अचूक सेंटिंग दृष्टिकोण का उपयोग कर सकते हैं:
/* merge with above css */
.parent-element-to-video {
position: relative; /* or absolute or fixed */
}
video {
position: absolute;
left: 50%; /* % of surrounding element */
top: 50%;
transform: translate(-50%, -50%); /* % of current element */
}
बेशक, vw, vh, और transformCSS3 के हैं, इसलिए यदि आप की जरूरत है बहुत पुराने ब्राउज़र के साथ संगतता , आप उपयोग स्क्रिप्ट की आवश्यकता होगी।
vhऔर vwकुछ के साथ क्या करना है?
पृष्ठभूमि कवर का उपयोग करना छवियों के लिए ठीक है, और इसलिए चौड़ाई 100% है। ये इष्टतम नहीं हैं <video>, और ये उत्तर अत्यधिक जटिल हैं। पूरी चौड़ाई की वीडियो पृष्ठभूमि को पूरा करने के लिए आपको jQuery या जावास्क्रिप्ट की आवश्यकता नहीं है।
ध्यान रखें कि मेरा कोड पूरी तरह से कवर विडियो जैसे वीडियो के साथ एक पृष्ठभूमि को कवर नहीं करेगा, लेकिन इसके बजाय यह वीडियो को उतना बड़ा बना देगा जितना कि पहलू अनुपात को बनाए रखने के लिए और अभी भी पूरी पृष्ठभूमि को कवर करने की आवश्यकता है। किसी भी अतिरिक्त वीडियो को पृष्ठ किनारे से हटा दिया जाएगा, जो कि उस पक्ष पर निर्भर करते हैं जहां आप वीडियो को लंगर डालते हैं।
जवाब बहुत सरल है।
बस इस HTML5 वीडियो कोड, या इन पंक्तियों के साथ कुछ का उपयोग करें: (पूर्ण पृष्ठ में परीक्षण)
html, body {
width: 100%;
height:100%;
overflow:hidden;
}
#vid{
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translateX(-50%) translateY(-50%);
transform: translateX(-50%) translateY(-50%);
min-width: 100%;
min-height: 100%;
width: auto;
height: auto;
z-index: -1000;
overflow: hidden;
}
<video id="vid" video autobuffer autoplay>
<source id="mp4" src="http://grochtdreis.de/fuer-jsfiddle/video/sintel_trailer-480.mp4" type="video/mp4">
</video>
न्यूनतम ऊंचाई और न्यूनतम चौड़ाई वीडियो को वीडियो के पहलू अनुपात को बनाए रखने की अनुमति देगा, जो आमतौर पर सामान्य संकल्प पर किसी भी सामान्य ब्राउज़र का पहलू अनुपात होता है। पृष्ठ के किनारे से कोई भी अतिरिक्त वीडियो बंद हो जाता है।
min-widthया min-heightट्रिक करता है।
position: absolute; left: 50%; top: 50%; transform: translateX(-50%) translateY(-50%);:।
height: 100%; width: 100%;। इस आधुनिक उत्तर के लिए धन्यवाद
यहाँ मैंने यह कैसे किया। एक काम करने वाला उदाहरण इस jsFiddle में है ।
var min_w = 300; // minimum video width allowed
var vid_w_orig; // original video dimensions
var vid_h_orig;
jQuery(function() { // runs after DOM has loaded
vid_w_orig = parseInt(jQuery('video').attr('width'));
vid_h_orig = parseInt(jQuery('video').attr('height'));
$('#debug').append("<p>DOM loaded</p>");
jQuery(window).resize(function () { resizeToCover(); });
jQuery(window).trigger('resize');
});
function resizeToCover() {
// set the video viewport to the window size
jQuery('#video-viewport').width(jQuery(window).width());
jQuery('#video-viewport').height(jQuery(window).height());
// use largest scale factor of horizontal/vertical
var scale_h = jQuery(window).width() / vid_w_orig;
var scale_v = jQuery(window).height() / vid_h_orig;
var scale = scale_h > scale_v ? scale_h : scale_v;
// don't allow scaled width < minimum video width
if (scale * vid_w_orig < min_w) {scale = min_w / vid_w_orig;};
// now scale the video
jQuery('video').width(scale * vid_w_orig);
jQuery('video').height(scale * vid_h_orig);
// and center it by scrolling the video viewport
jQuery('#video-viewport').scrollLeft((jQuery('video').width() - jQuery(window).width()) / 2);
jQuery('#video-viewport').scrollTop((jQuery('video').height() - jQuery(window).height()) / 2);
// debug output
jQuery('#debug').html("<p>win_w: " + jQuery(window).width() + "</p>");
jQuery('#debug').append("<p>win_h: " + jQuery(window).height() + "</p>");
jQuery('#debug').append("<p>viewport_w: " + jQuery('#video-viewport').width() + "</p>");
jQuery('#debug').append("<p>viewport_h: " + jQuery('#video-viewport').height() + "</p>");
jQuery('#debug').append("<p>video_w: " + jQuery('video').width() + "</p>");
jQuery('#debug').append("<p>video_h: " + jQuery('video').height() + "</p>");
jQuery('#debug').append("<p>vid_w_orig: " + vid_w_orig + "</p>");
jQuery('#debug').append("<p>vid_h_orig: " + vid_h_orig + "</p>");
jQuery('#debug').append("<p>scale: " + scale + "</p>");
};
#video-viewport {
position: absolute;
top: 0;
overflow: hidden;
z-index: -1; /* for accessing the video by click */
}
#debug {
position: absolute;
top: 0;
z-index: 100;
color: #fff;
font-size: 12pt;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="video-viewport">
<video autoplay controls preload width="640" height="360">
<source src="http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4"type="video/mp4" />
<source src="http://www.quirksmode.org/html5/videos/big_buck_bunny.webm"type="video/webm" />
<source src="http://www.quirksmode.org/html5/videos/big_buck_bunny.ogv"type="video/webm" />
</video>
</div>
<div id="debug"></div>
video { min-width: 100%; min-height: 100%; }और यह एक आकर्षण की तरह काम करता है।
background-size: coverवीडियो चाहिए तो आपको यही चाहिए ।
अन्य उत्तर अच्छे थे लेकिन उनमें जावास्क्रिप्ट शामिल है या वे वीडियो को क्षैतिज और लंबवत रूप से केंद्र में नहीं रखते हैं।
आप इस पूर्ण सीएसएस समाधान का उपयोग एक वीडियो के लिए कर सकते हैं जो पृष्ठभूमि के आकार का अनुकरण करता है: संपत्ति कवर करें:
video {
position: fixed; // Make it full screen (fixed)
right: 0;
bottom: 0;
z-index: -1; // Put on background
min-width: 100%; // Expand video
min-height: 100%;
width: auto; // Keep aspect ratio
height: auto;
top: 50%; // Vertical center offset
left: 50%; // Horizontal center offset
-webkit-transform: translate(-50%,-50%);
-moz-transform: translate(-50%,-50%);
-ms-transform: translate(-50%,-50%);
transform: translate(-50%,-50%); // Cover effect: compensate the offset
background: url(bkg.jpg) no-repeat; // Background placeholder, not always needed
background-size: cover;
}
डैनियल डे विट के जवाब और टिप्पणियों के आधार पर , मैंने कुछ और खोज की। समाधान के लिए उसका धन्यवाद।
समाधान का उपयोग करना है object-fit: cover;जिसके पास एक महान समर्थन है (प्रत्येक आधुनिक ब्राउज़र इसका समर्थन करता है)। यदि आप वास्तव में IE का समर्थन करना चाहते हैं, तो आप ऑब्जेक्ट-फिट-इमेज या ऑब्जेक्ट-फिट जैसे पॉलीफ़िल का उपयोग कर सकते हैं ।
प्रदर्शन:
img {
float: left;
width: 100px;
height: 80px;
border: 1px solid black;
margin-right: 1em;
}
.fill {
object-fit: fill;
}
.contain {
object-fit: contain;
}
.cover {
object-fit: cover;
}
.none {
object-fit: none;
}
.scale-down {
object-fit: scale-down;
}
<img class="fill" src="http://www.peppercarrot.com/data/wiki/medias/img/chara_carrot.jpg"/>
<img class="contain" src="http://www.peppercarrot.com/data/wiki/medias/img/chara_carrot.jpg"/>
<img class="cover" src="http://www.peppercarrot.com/data/wiki/medias/img/chara_carrot.jpg"/>
<img class="none" src="http://www.peppercarrot.com/data/wiki/medias/img/chara_carrot.jpg"/>
<img class="scale-down" src="http://www.peppercarrot.com/data/wiki/medias/img/chara_carrot.jpg"/>
और माता-पिता के साथ:
div {
float: left;
width: 100px;
height: 80px;
border: 1px solid black;
margin-right: 1em;
}
img {
width: 100%;
height: 100%;
}
.fill {
object-fit: fill;
}
.contain {
object-fit: contain;
}
.cover {
object-fit: cover;
}
.none {
object-fit: none;
}
.scale-down {
object-fit: scale-down;
}
<div>
<img class="fill" src="http://www.peppercarrot.com/data/wiki/medias/img/chara_carrot.jpg"/>
</div><div>
<img class="contain" src="http://www.peppercarrot.com/data/wiki/medias/img/chara_carrot.jpg"/>
</div><div>
<img class="cover" src="http://www.peppercarrot.com/data/wiki/medias/img/chara_carrot.jpg"/>
</div><div>
<img class="none" src="http://www.peppercarrot.com/data/wiki/medias/img/chara_carrot.jpg"/>
</div><div>
<img class="scale-down" src="http://www.peppercarrot.com/data/wiki/medias/img/chara_carrot.jpg"/>
</div>
object-fit: coverऔर widthऔर height100% करने के लिए सेट, आप एक अनुपात में बढ़ाया पाने imgया videoकिसी भी उपद्रव के बिना केंद्र पर जूम।
एम-पिक्सेल का समाधान इस मायने में बढ़िया है कि यह टिमोथी के जवाब की स्केलिंग समस्या को हल करता है (वीडियो बड़े पैमाने पर होगा, लेकिन नीचे नहीं, इसलिए यदि आपका वीडियो वास्तव में बड़ा है, तो अच्छे मौके हैं कि आप केवल उसके हिस्से में एक छोटा ज़ूम करके देखेंगे)। हालाँकि, यह समाधान वीडियो कंटेनर के आकार से संबंधित गलत धारणाओं पर आधारित है, अर्थात् यह व्यूपोर्ट की चौड़ाई और ऊंचाई का 100% है। मुझे कुछ मामले मिले हैं जहां यह मेरे लिए काम नहीं करता है, इसलिए मैंने खुद समस्या से निपटने का फैसला किया, और मुझे विश्वास है कि मैं अंतिम समाधान के साथ आया हूं ।
एचटीएमएल
<div class="parent-container">
<div class="video-container">
<video width="1920" height="1080" preload="auto" autoplay loop>
<source src="video.mp4" type="video/mp4">
</video>
</div>
</div>
सीएसएस
.parent-container {
/* any width or height */
position: relative;
overflow: hidden;
}
.video-container {
width: 100%;
min-height: 100%;
position: absolute;
left: 0px;
/* center vertically */
top: 50%;
-moz-transform: translate(0%, -50%);
-ms-transform: translate(0%, -50%);
-webkit-transform: translate(0%, -50%);
transform: translate(0%, -50%);
}
.video-container::before {
content: "";
display: block;
height: 0px;
padding-bottom: 56.25%; /* 100% * 9 / 16 */
}
.video-container video {
width: auto;
height: 100%;
position: absolute;
top: 0px;
/* center horizontally */
left: 50%;
-moz-transform: translate(-50%, 0%);
-ms-transform: translate(-50%, 0%);
-webkit-transform: translate(-50%, 0%);
transform: translate(-50%, 0%);
}
यह वीडियो के अनुपात पर भी आधारित है, इसलिए यदि आपके वीडियो में 16/9 के अलावा कोई अनुपात है तो आप पेडिंग-बॉटम% बदलना चाहेंगे। इसके अलावा, यह बॉक्स से बाहर काम करता है। IE9 +, सफारी 9.0.1, क्रोम 46 और फ़ायरफ़ॉक्स 41 में परीक्षण किया गया।
जब से मैंने यह उत्तर पोस्ट किया है मैंने तत्वों background-size: coverऔर दोनों background-size: containपर अनुकरण करने के लिए एक छोटा सीएसएस मॉड्यूल लिखा है <video>: http://codepen.io/benface/pen/NNdBMj
यह वीडियो के लिए अलग-अलग संरेखण का समर्थन करता है (समान background-position)। यह भी ध्यान दें कि containकार्यान्वयन सही नहीं है। इसके विपरीत background-size: contain, यदि कंटेनर की चौड़ाई और ऊंचाई बड़ी है, तो यह वीडियो को उसके वास्तविक आकार से अलग नहीं करेगा, लेकिन मुझे लगता है कि यह अभी भी कुछ मामलों में उपयोगी हो सकता है। मैंने विशेष fill-widthऔर fill-heightकक्षाएं भी जोड़ी हैं जिनका उपयोग containआप एक विशेष मिश्रण के साथ कर सकते हैं containऔर cover... इसे आज़माएं, और इसे सुधारने के लिए स्वतंत्र महसूस करें!
object-fit: coverएफएफ और क्रोम के लिए इस्तेमाल किया और IE के लिए
object-fit: cover इस IE, सफारी पॉलीफ़िल के साथ सबसे अच्छा जवाब है।
https://github.com/constancecchen/object-fit-polyfill
यह समर्थन कर रहा है img, videoऔर pictureतत्व।
CSS और छोटे js वीडियो को पृष्ठभूमि और क्षैतिज रूप से केंद्रित कर सकते हैं।
सीएसएस:
video#bgvid {
position: absolute;
bottom: 0px;
left: 50%;
min-width: 100%;
min-height: 100%;
width: auto;
height: auto;
z-index: -1;
overflow: hidden;
}
JS: (इसे विंडो आकार बदलें और एक बार अलग से कॉल करें)
$('#bgvid').css({
marginLeft : '-' + ($('#bgvid').width()/2) + 'px'
})
हमारे लंबे टिप्पणी अनुभाग के ठीक बाद, मुझे लगता है कि यह वही है जो आप खोज रहे हैं, यह jQuery आधारित है:
HTML:
<img width="100%" id="img" src="http://uploads8.wikipaintings.org/images/william-adolphe-bouguereau/self-portrait-presented-to-m-sage-1886.jpg">
जे एस:
<script type="text/javascript">
window.onload = function(){
var img = document.getElementById('img')
if(img.clientHeight<$(window).height()){
img.style.height=$(window).height()+"px";
}
if(img.clientWidth<$(window).width()){
img.style.width=$(window).width()+"px";
}
}
</script>
सीएसएस:
body{
overflow: hidden;
}
उपरोक्त कोड ब्राउज़रों की चौड़ाई और ऊंचाई का उपयोग कर रहा है यदि आप एक div के भीतर ऐसा कर रहे हैं, तो आपको इसे कुछ इस तरह बदलना होगा:
Div के लिए:
HTML:
<div style="width:100px; max-height: 100px;" id="div">
<img width="100%" id="img" src="http://uploads8.wikipaintings.org/images/william-adolphe-bouguereau/self-portrait-presented-to-m-sage-1886.jpg">
</div>
जे एस:
<script type="text/javascript">
window.onload = function(){
var img = document.getElementById('img')
if(img.clientHeight<$('#div').height()){
img.style.height=$('#div').height()+"px";
}
if(img.clientWidth<$('#div').width()){
img.style.width=$('#div').width()+"px";
}
}
</script>
सीएसएस:
div{
overflow: hidden;
}
मुझे यह भी बताना चाहिए कि मैंने केवल यह Google Chrome का परीक्षण किया है ... यहाँ एक jsfiddle है: http://jsfiddle.net/ADKK/
जब आप अपने वीडियो की चौड़ाई से कम की ब्राउज़र चौड़ाई पर होते हैं, तो शीर्ष उत्तर वीडियो को मापता नहीं है। इस सीएसएस (#bgvid अपने वीडियो आईडी होने के साथ) का उपयोग करने का प्रयास करें:
#bgvid {
position: fixed;
top: 50%;
left: 50%;
min-width: 100%;
min-height: 100%;
width: auto;
height: auto;
transform: translateX(-50%) translateY(-50%);
-webkit-transform: translateX(-50%) translateY(-50%);
}
z-indexआवश्यक है?
मैं इस समाधान के रूप में अच्छी तरह से इस पोस्ट के बाद से, मैं इस समस्या थी, लेकिन अन्य समाधान मेरी स्थिति के लिए काम नहीं किया ...
मुझे लगता है कि background-size:cover;तत्व पृष्ठभूमि छवि छवि संपत्ति के बजाय एक तत्व पर सीएसएस संपत्ति को ठीक से अनुकरण करने के लिए , आपको छवियों के पहलू अनुपात की वर्तमान खिड़कियों पहलू अनुपात से तुलना करनी होगी, इसलिए कोई फर्क नहीं पड़ता कि आकार (और छवि के मामले में भी) खिड़की की तुलना में लंबा) तत्व वह तत्व है जो खिड़की को भर रहा है (और इसे केन्द्रित भी कर रहा है, हालांकि मुझे नहीं पता कि क्या यह एक आवश्यकता थी ...)
एक छवि का उपयोग करना, बस सादगी के लिए, मुझे यकीन है कि एक वीडियो तत्व भी ठीक काम करेगा।
पहले तत्वों का पहलू अनुपात प्राप्त करें (एक बार लोड होने के बाद), फिर विंडो को आकार बदलने वाले हैंडलर से जोड़ दें, प्रारंभिक आकार के लिए इसे एक बार ट्रिगर करें:
var img = document.getElementById( "background-picture" ),
imgAspectRatio;
img.onload = function() {
// get images aspect ratio
imgAspectRatio = this.height / this.width;
// attach resize event and fire it once
window.onresize = resizeBackground;
window.onresize();
}
फिर अपने आकार बदलने वाले हैंडलर में आपको पहले यह निर्धारित करना चाहिए कि खिड़की के वर्तमान पहलू अनुपात की छवि के मूल पहलू अनुपात की तुलना करके चौड़ाई भरना या ऊंचाई भरना है या नहीं।
function resizeBackground( evt ) {
// get window size and aspect ratio
var windowWidth = window.innerWidth,
windowHeight = window.innerHeight;
windowAspectRatio = windowHeight / windowWidth;
//compare window ratio to image ratio so you know which way the image should fill
if ( windowAspectRatio < imgAspectRatio ) {
// we are fill width
img.style.width = windowWidth + "px";
// and applying the correct aspect to the height now
img.style.height = (windowWidth * imgAspectRatio) + "px";
// this can be margin if your element is not positioned relatively, absolutely or fixed
// make sure image is always centered
img.style.left = "0px";
img.style.top = (windowHeight - (windowWidth * imgAspectRatio)) / 2 + "px";
} else { // same thing as above but filling height instead
img.style.height = windowHeight + "px";
img.style.width = (windowHeight / imgAspectRatio) + "px";
img.style.left = (windowWidth - (windowHeight / imgAspectRatio)) / 2 + "px";
img.style.top = "0px";
}
}
यह दृष्टिकोण सिर्फ css और html का उपयोग करता है। आप वास्तव में वीडियो के नीचे एक div को आसानी से स्टैक कर सकते हैं। जब आप आकार बदलते हैं तो यह कवर होता है लेकिन केंद्रित नहीं होता है।
HTML:
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
</script>
</head>
<body>
<div id = "contain">
<div id="vid">
<video autoplay>
<source src="http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4" type="video/mp4" />
</video>
</div>
</div>
</body>
</html>
सीसीएस:
/*
filename:style.css
*/
body {
margin:0;
}
#vid video{
position: absolute;
right: 0;
top: 0;
min-width: 100%;
min-height: 100%;
width: auto;
height: auto;
}
#contain {
width:100%;
height:100%;
zoom:1%;/*Without this the video will be stretched and skewed*/
}
इस प्रश्न में 6 दिन में छिपे हुए हॉब्स से +100 की प्रतिष्ठा का खुला इनाम है। एक लचीला सीएसएस केवल समाधान प्राप्त करने के लिए व्यूपोर्ट इकाइयों का आविष्कारशील उपयोग।
आपने सीएसएस केवल समाधान के लिए इस प्रश्न पर एक इनाम खोला, इसलिए मैं इसे आजमाऊंगा। इस तरह की समस्या का मेरा समाधान वीडियो की ऊंचाई और चौड़ाई तय करने के लिए एक निश्चित अनुपात का उपयोग करना है। मैं आमतौर पर बूटस्ट्रैप का उपयोग करता हूं, लेकिन मैंने बिना काम करने के लिए वहां से आवश्यक सीएसएस निकाला। यह एक कोड है जिसे मैंने पहले अन्य चीजों के बीच इस्तेमाल किया है जो सही अनुपात के साथ एक एम्बेड किए गए वीडियो को केंद्र में रखता है। इसके लिए काम करना चाहिए <video>और <img>तत्व भी यह सबसे ऊपर है जो यहां प्रासंगिक है, लेकिन मैंने आपको अन्य दो भी दिए हैं क्योंकि मेरे पास पहले से ही उनके आसपास था। शुभकामनाएँ! :)
.embeddedContent.centeredContent {
margin: 0px auto;
}
.embeddedContent.rightAlignedContent {
margin: auto 0px auto auto;
}
.embeddedContent > .embeddedInnerWrapper {
position:relative;
display: block;
padding: 0;
padding-top: 42.8571%; /* 21:9 ratio */
}
.embeddedContent > .embeddedInnerWrapper > iframe {
position: absolute;
top: 0;
left: 0;
bottom: 0;
height: 100%;
width: 100%;
border: 0;
}
.embeddedContent {
max-width: 300px;
}
.box1text {
background-color: red;
}
/* snippet from Bootstrap */
.container {
margin-right: auto;
margin-left: auto;
}
.col-md-12 {
width: 100%;
}
<div class="container">
<div class="row">
<div class="col-md-12">
Testing ratio AND left/right/center align:<br />
<div class="box1text">
<div class="embeddedContent centeredContent">
<div class="embeddedInnerWrapper">
<iframe allowfullscreen="true" allowscriptaccess="always" frameborder="0" height="349" scrolling="no" src="//www.youtube.com/embed/u6XAPnuFjJc?wmode=transparent&jqoemcache=eE9xf" width="425"></iframe>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-md-12">
Testing ratio AND left/right/center align:<br />
<div class="box1text">
<div class="embeddedContent rightAlignedContent">
<div class="embeddedInnerWrapper">
<iframe allowfullscreen="true" allowscriptaccess="always" frameborder="0" height="349" scrolling="no" src="//www.youtube.com/embed/u6XAPnuFjJc?wmode=transparent&jqoemcache=eE9xf" width="425"></iframe>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-md-12">
Testing ratio AND left/right/center align:<br />
<div class="box1text">
<div class="embeddedContent">
<div class="embeddedInnerWrapper">
<iframe allowfullscreen="true" allowscriptaccess="always" frameborder="0" height="349" scrolling="no" src="//www.youtube.com/embed/u6XAPnuFjJc?wmode=transparent&jqoemcache=eE9xf" width="425"></iframe>
</div>
</div>
</div>
</div>
</div>
</div>
वीटोच की टिप्पणी का जवाब देने के लिए कि टिमोथी रायन कारपेंटर का जवाब coverपृष्ठभूमि के केंद्र के लिए नहीं है, मैं इस त्वरित सीएसएस फिक्स की पेशकश करता हूं:
सीएसएस:
margin-left: 50%;
transform: translateX(-50%);
इन दो पंक्तियों को जोड़ने से कोई भी तत्व केन्द्रित होगा। इससे भी बेहतर, सभी ब्राउज़र जो एचटीएमएल 5 वीडियो को संभाल सकते हैं, वे CSS3 के परिवर्तनों का भी समर्थन करते हैं, इसलिए यह हमेशा काम करेगा।
पूरा CSS ऐसा दिखता है।
#video-background {
position: absolute;
bottom: 0px;
right: 0px;
min-width: 100%;
min-height: 100%;
width: auto;
height: auto;
z-index: -1000;
overflow: hidden;
margin-left: 50%;
transform: translateX(-50%);
}
मैंने सीधे टिमोथी के जवाब पर टिप्पणी की होगी, लेकिन मेरे पास ऐसा करने के लिए पर्याप्त प्रतिष्ठा नहीं है।
दोस्तों मेरे पास इसका बेहतर समाधान है और मेरे लिए पूरी तरह से काम करता है। मैंने इसका इस्तेमाल वीडियो के लिए किया है। और इसकी पूरी तरह से सीएसएस में कवर विकल्प का अनुकरण करता है।
जावास्क्रिप्ट
$(window).resize(function(){
//use the aspect ration of your video or image instead 16/9
if($(window).width()/$(window).height()>16/9){
$("video").css("width","100%");
$("video").css("height","auto");
}
else{
$("video").css("width","auto");
$("video").css("height","100%");
}
});
यदि आप यदि फ्लिप करते हैं, तो आप को सम्मिलित किया जाएगा।
और यहाँ सी.एस.एस. (यदि आप केंद्र की स्थिति नहीं चाहते हैं तो आपको इसका उपयोग करने की आवश्यकता नहीं है, माता-पिता को " स्थिति: रिश्तेदार " होना चाहिए )
सीएसएस
video {
position: absolute;
-webkit-transform: translateX(-50%) translateY(-50%);
transform: translateX(-50%) translateY(-50%);
top: 50%;
left: 50%;}
मैंने इसे हल किया और साझा करना चाहता था। यह बूटस्ट्रैप 4 के साथ काम करता है। यह इसके साथ काम करता है imgलेकिन मैंने इसके साथ परीक्षण नहीं किया video। यहाँ HAML और SCSS है
HAML
.container
.detail-img.d-flex.align-items-center
%img{src: 'http://placehold.it/1000x700'}
SCSS
.detail-img { // simulate background: center/cover
max-height: 400px;
overflow: hidden;
img {
width: 100%;
}
}
/* simulate background: center/cover */
.center-cover {
max-height: 400px;
overflow: hidden;
}
.center-cover img {
width: 100%;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container">
<div class="center-cover d-flex align-items-center">
<img src="http://placehold.it/1000x700">
</div>
</div>
पुराना सवाल है, लेकिन अगर कोई इसे देखता है, तो मेरी राय में सबसे अच्छा जवाब वीडियो को एनिमेटेड GIF में बदलना है। यह आपको बहुत अधिक नियंत्रण देता है और आप इसे केवल एक छवि की तरह मान सकते हैं। यह मोबाइल पर काम करने का एकमात्र तरीका है, क्योंकि आप वीडियो को ऑटोप्ले नहीं कर सकते। मुझे पता है कि यह सवाल एक <img>टैग में करने के लिए कह रहा है, लेकिन मैं वास्तव में ए <div>और कर के उपयोग के नकारात्मक पक्ष को नहीं देखता हूंbackground-size: cover
.gifआकार में बहुत बड़ा होता है, जबकि धुंधला भी। जब से मैंने यह उत्तर लिखा है, मेरा विचार बदल गया है। यह शर्म की बात है कि आप दोनों का सर्वश्रेष्ठ संयोजन नहीं कर सकते।