
理解不足によるものと承知でタイトルにしましたが、本当に理解に苦しんでいます。
0. iframeのサイズをsytleで指定してもサイズが小さく表示される
0. iframeに被せるようにdivを配置してもiframeの方が上に表示される
0. iframeに被せたdivにopacityを1未満で指定すると上に表示される
Mac safari,chrome,opera にて動作を確認しました
firefoxは「1.サイズが小さく表示される」は発生しませんでした
index.html
html
1<!DOCTYPE html> 2<html> 3<head> 4 <style> 5 body {padding:0;margin:0} 6 .overpanel { 7 background-color: pink; 8 border: 1px solid red; 9 box-sizing: border-box; 10 width: 600px; 11 height: 200px; 12 margin: auto; 13 margin-top : -200px; 14 } 15 .frame { 16 width: 600px; 17 height: 200px; 18 display: block; 19 margin: auto; 20 float: none; 21 } 22 .contents { 23 border: 20px solid skyblue; 24 box-sizing: border-box; 25 background-color: lightgreen; 26 width: 600px; 27 height: 200px; 28 margin: auto; 29 } 30 </style> 31</head> 32<body> 33<div style="height:50px;"></div> 34<!-- --> 35<iframe class="frame" src="iframe-content.html" marginheight="0" frameborder="0" scrolling="yes"></iframe> 36<div class="overpanel"></div> 37<!-- --> 38<div class="contents"></div> 39<div class="overpanel"></div> 40 41</body> 42</html>
iframe-content.html
html
1<html> 2<head> 3 <style> 4 .contents { 5 border: 20px solid skyblue; 6 box-sizing: border-box; 7 background-color: lightgreen; 8 width: 100%; 9 height:500px; 10 } 11 </style> 12</head> 13<body> 14 <div class="contents"></div> 15</body> 16</html>
iframeのサイズをsytleで指定してもサイズが小さく表示される
iframeのサイズを幅600pxにしていますが、実際には584pxで表示されています。
styleではなくiframe要素widthでwidth="600"
にしても結果は同じでした。
iframeに被せるようにdivを配置してもiframeの方が上に表示される
iframeの次に配置したdivをマイナスマージンすることで上に重ねていいます。
通常、後から指定されたものが上に重なると理解しているのですが、そうなりません。
iframeに被せたdivにopacityを1未満で指定すると上に表示される
なんらかの理由でiframeの優先度が強いのかと思ったのですが…
opacity:0.99
を指定すると上に表示されます。opacity:1
だと下になります。
とても不可解な挙動に思えます。
1番の目的は「iframeの上にdivを重ねる」ということなのですが、サイズが小さくなることもデザイン上困っています。
原因と対策をご存知でしたら教えていただけるとうれしいです。
よろしくお願いします。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/03/14 16:47