質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

3回答

2751閲覧

ウィンドウ幅に対応した埋め込み動画のcssが分かりません

pythago

総合スコア47

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

1クリップ

投稿2016/05/30 09:22

ウィンドウ幅に対応して動画サイズが変わるのですが、どうして以下のようなcssで可能になるかが理解できません。
どなたか教えていただけないでしょうか?

html

1<p> 2 <iframe> 3</p>

css

1p { 2 padding: 56.25% 0 0 0; 3 position: relarive; 4 width: 100%; 5} 6iframe { 7 position: absolute; 8 top: 0; 9 right: 0; 10 width: 100% !important; 11 height: 100% !important; 12}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

こんにちは。

現状のソースだとpタグが意味をなしてないから理解できないんじゃないですか?
pタグのwidth変えても画面に対していっぱいいっぱいに表示されるだけじゃん的な。。。

本来ならpタグのwidthを80%にしたらwindowに対して80%で動画を表示されるべきですが
現状だと
pタグのpositionの値が間違って記載されています。

css

1 p { 2 padding: 56.25% 0 0 0; 3 position: relative; 4 width: 100%; 5 }

が正しい記述です。
そしてpaddingで与えている56.25%ってのは割と肝だと個人的には思います。

http://design-spice.com/2014/03/24/percentag/
個人的にはこっちのほうが丁寧なのでこの辺見てみると理解できるかと思います。

投稿2016/05/30 10:28

kogure

総合スコア299

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

chiro.0516さんの紹介されている参考URLでほぼ説明しつくされている感はありますが、
一応補足。

まず、ウィンドウ幅に対応して動画サイズ(iframeのサイズ)が変わる仕組みですが、
大きく2つの柱があります。

###1.親要素の横幅に対して一定の比率でサイズが変わる空白領域を作る

まず「1」を実装しているのが今回のコードで言えばこの部分です。

CSS

1p { 2 padding: 56.25% 0 0 0; 3}

ショートハンドになっていますが要するに、padding-top: 56.25%;これがポイントです。
CSSにおいてpadding/marginの値を%で指定した場合、何を基準とするのか?
そこが分かっていれば「横幅に対して常に一定のサイズの領域を作る仕組み」が理解できるようになります。

padding/marginの値を%にした場合、基準となるのはその親要素の横幅です。

・自分自身の横幅ではなく、親要素の横幅を基準とする
・左右のmargin/paddingだけでなく上下のmargin/paddingでも、基準となるのは親要素の横幅である

CSSのこの仕様により、
親の横幅100%に対してpadding-topを56.25%とすることで、16:9の比率の空白領域を常に保つことが
できるようになります。(参考サイトでは16:9→9÷6=56.25となっていますが、正確には9÷16×100=56.25%ですね)

###2. 1で作った空白領域内全体をiframeで覆う
次に、この一定比率を保ったまま拡大縮小する空白領域の上に、動画を埋め込むためのiframe要素を
position:absolute;で被せます。

CSS

1iframe { 2 position: absolute; 3 top: 0; 4 right: 0; 5 width: 100% !important; 6 height: 100% !important; 7}

この時、iframe要素の**widthとheightを共に100%**にすることで、
widthは親要素の幅いっぱいに、heightは親要素の高さいっぱいに拡がることになります。
iframe要素も%指定していますので、親のコンテナ要素のサイズが変わればそれに応じて
iframe要素のサイズも変わります。
そこに、Youtubeの動画が表示される、という仕組みです。

お分かりいただけましたでしょうか?

投稿2016/05/30 10:26

aKusano

総合スコア3763

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pythago

2016/05/30 10:58

はい! ほぼ理解することが出来ましたが、1つ質問させてください。 padding-topを56.25%にすることで、pタグ内が常に16:9を保てるということでしょうか?
aKusano

2016/05/30 11:00

その通りです。 ちなみにpadding-topではなく、padding-bottom: 56.25%; としても結果は同じです。 (同じ仕組で動いているので)
pythago

2016/05/30 23:42

ご丁寧にありがとうございます 理解することが出来ました
guest

0

http://www.webdesignleaves.com/wp/htmlcss/639/

ここの説明でいかがでしょうか?

投稿2016/05/30 09:27

chiro.0519

総合スコア118

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問