2014-08-29 11 views
7

Mam poniższy obraz pustego MacBooka.zawijanie wideo z youtube w statycznej "ramce" obrazu i zachowanie responsywnej zmiany rozmiaru

enter image description here

Obraz jest 1034 x 543.

Chcę wstawka video youtube wewnątrz "szarej" strefy ekranu. Chcę, żeby wyglądało to tak, jakby wideo z youtube grało na ekranie laptopa.

Chcę również, aby obraz z laptopa/YouTube był skalowany, więc gdy strona jest w widoku tabletu lub telefonu, obraz i wideo zmniejszają się, aby dopasować.

Próbuję użyć fitvid.js, aby to osiągnąć, ale nie mam szczęścia - mogę sprawić, aby wideo mieściło się w jednym rozmiarze statycznym, ale nie mogę go dopasować do rozmiaru, jest zdeformowane.

Poniżej jest mój obecny markup:

html:

<div class="col-sm-12"> 
    <div class="title"> 
    <h2>What's New</h2> 
    <small>ASC Sneak Peak</small> 
    </div> 
    <div class="macbook-wrapper"> 
    <iframe width="715" height="402" src="//www.youtube.com/embed/**url**" frameborder="0" allowfullscreen></iframe> 
    </div> 
</div> 

SASS:

.macbook-wrapper{ 
    background: url('../img/content/home/macbook.png') no-repeat; 

    .fluid-width-video-wrapper { 
    width: 97.5%; 
    background: #000; 
    } 
} 
+0

Coś http://jsfiddle.net/ 41sdho4w /? Chciałem tylko upewnić się, że dobrze zrozumiałem twoje pytanie, zanim opublikujesz odpowiedź. – Evan

+0

@Evan: dokładnie. : D – Prefix

+0

Wspaniale, jestem pewien, że jest mnóstwo sposobów, aby to zrobić, ale w ten sposób poradzę sobie z tym. @ Mój komentarz poniżej, powiedziałem, że można zbudować macbook wokół iframe poza CSS i mieć tę skalę również bez całego pozycjonowania i super dokładne dopełnienie. – Evan

Odpowiedz

17

Można zaszczepić jakieś sztuczki z padding i procentów, że sposób, w jaki mógł odpowiednio skalować. Zasadniczo, utworzenie kontenera, który ma czysto% bazy, z pozycją bezwzględną, która skaluje się odpowiednio do kontenera.

HTML

<div> 
    <iframe></iframe> 
</div> 

CSS

div { 
    position: relative; 
    padding-top: 25px; 
    padding-bottom: 67.5%; 
} 
div iframe { 
    background: url(http://i.stack.imgur.com/zZNgk.png) center center no-repeat; 
    background-size: contain; 
    position: absolute; 
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%; 
} 

Byłbyś wystarczy dodać box-sizing: border-box; a niektóre padding do pozycjonowania iframe na ekranie. Sprawdź to http://jsfiddle.net/41sdho4w/

wziąć to kawałek dalej - oto wersja z pojemnikiem, aby pomóc kontrolować max-width i max-height a następnie opierając się na ciele/rzutnia http://jsfiddle.net/4g9e3ywy/

+0

Cześć! dzięki za świetne rozwiązanie, działa, ale macbook to 100% szerokości strony. Chciałbym skalować w dół z wdziękiem, ale nie przekraczać 1034x543. Jeśli dodaję max-width i max-height do div kontenera, wydaje mi się, że nieporządek z dopełnieniem iframe – Prefix

+1

My bad! pozwól mi go zaktualizować, może potrzebować tylko wyznaczonego kontenera, z którego% może być oparty. – Evan

+1

Stworzyłem dodatkowy pojemnik na całą rzecz - tutaj można ustawić żądaną szerokość maks./Maks. - a elementy podrzędne% wypełnienia/szerokości itp będą na tym polegać. – Evan