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

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

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

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

CSS

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

Q&A

解決済

3回答

940閲覧

iframeタグが中央寄せにならない理由が知りたい

退会済みユーザー

退会済みユーザー

総合スコア0

HTML

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

CSS

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

0グッド

0クリップ

投稿2020/02/04 05:11

html

1 <div class="mv"> 2 <iframe src="https://www.youtube.com/embed/yn" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> 3 </div>

css

1.mv { 2 position: relative; 3 height: 0; 4 padding-top: 40%; 5 margin: 0 auto; 6 width: 90%; 7} 8 9iframe{ 10 position: absolute; 11 top: 0; 12 left: 0; 13 width: 80%; 14 height: 100%; 15 margin: 0 auto; 16 display: block; 17 18}

上記のやり方ではなぜうまくいかなかいのでしょうか。
iframe要素の幅は変えずに中央寄せにする方法はありますか。

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

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

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

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

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

guest

回答3

0

ベストアンサー

上記のやり方ではなぜうまくいかなかいのでしょうか。

position: absolute;を指定しているからです。
これは、要素の位置を絶対座標位置にするため、margin: 0 auto;が効いてないんです。
(親要素が、position: relative;の設定をしているので、その要素の左上が基準に絶対座標位置となる)

iframe要素の幅は変えずに中央寄せにする方法はありますか。

位置を調整するには、yambejpさんのご回答通りですが、
div.mv要素の横幅の80%という設定なので、
div.mvの大きさが変動した場合は、iframeの実横幅が変化してしまいます。
それが嫌なら、px絶対値で横幅固定しましょう。

投稿2020/02/04 05:45

miyabi_takatsuk

総合スコア9555

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

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

退会済みユーザー

退会済みユーザー

2020/02/04 05:56

要素の位置を絶対座標位置にするため、margin: 0 auto;が効いてないということはautoではなく、単位指定したら(margin:60pxなどのように)効く理由はなんでしょうか
miyabi_takatsuk

2020/02/04 06:05 編集

px値であるからです。 また、margin: 0 10%;とかでも効くはずですよ。 autoは"自動"、ですので、absolute時のmargin: autoは、それは"自動"なので、 効かないとなるのは当たり前です。 (その要素のposition、displayのプロパティ値の仕様に則った自動値、となる) つまり、absolute時のmarginのauto値は(自動)は、0ってことです。
guest

0

position: absolute;がよくないです。

css

1html{ 2 height:100%; 3} 4.mv { 5padding-top: 40%; 6margin: 0 auto; 7width: 90%; 8height: 100%; 9} 10 11iframe{ 12width: 80%; 13height: 100%; 14margin: 0 auto; 15display: block; 16 17}

投稿2020/02/04 05:42

Lhankor_Mhy

総合スコア36960

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

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

退会済みユーザー

退会済みユーザー

2020/02/04 23:08

上記の方法だとiframeは親の領域の左上が基準位置にならずpadding-topの領域分下に位置づけられ、画面の表示される領域も半分以下になってしまうのですが。
Lhankor_Mhy

2020/02/05 00:54 編集

padding-top は asai-8961さんが元々つけていたスタイルです。 なんのためにあるのかわからなかったので残しておきましたが、不要なら削除すればいいのでは?
guest

0

iframeが.mvの左右真ん中にくればいいんですか?
であればiframeのwidthが80%なので
leftを10%にしてください

投稿2020/02/04 05:18

yambejp

総合スコア116724

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

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

退会済みユーザー

退会済みユーザー

2020/02/04 05:23

ありがとうございます。でもなぜ、margin:0 autoは効かないのでしょうか。
yambejp

2020/02/04 05:38

全体的によけいな修飾してませんかね .mv { background-Color:yellow; margin: 0 auto; height:40%; width: 90%; } iframe{ margin: 0 auto; top: 0; width: 80%; height:100%; display: block; } くらいで調整すればよいかと
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問