IE8は、iFRAMESに関しては厄介なものだと思います。「Frameborder」はHTML5で非推奨になっているため、IE8にとって最も簡単なオプションですが、これは長期的な解決策ではありません。
コンテナ内にiFRAMEを配置することで、境界線とスクロールバーを正常に非表示にしました。iFRAMEコンテナ自体は、Webページ上で全体的に配置するためにdiv内に配置されます。iFRAME自体は絶対位置にあり、上下の境界線を非表示にするために、上下の両方に負のマージンが適用されます。絶対位置にあるiFRAMEの幅と高さは100%を超えてコーディングする必要があります。これにより、親のサイズを超えて、右と下の境界線が表示されなくなります(スクロールバーも表示されなくなります)。この手法では、iFRAMEコンテナがパーセンテージと、コンテナを保持するdivを使用するため、iFrameの応答性も向上します。もちろん、iFRAMEの親divはoverflow:hiddenに設定する必要があります。
コード例は次のとおりです。
/*THE PARENT DIV FOR THE iFRAME CONTAINER*/
.calcontainer
{
width:100%; /*adjust iFrame shrinking here - if floating use percentage until no white space around image.*/
max-width:200px;
margin:auto;
}
/*THE RELATIVE POSITIONED CONTAINER FOR THE iFRAME*/
.calinside /*container for iFRAME - contents will size huge if the container is not contained and sized*/
{
position:relative; /*causes this to be the parent for the absolute iFRAME*/
padding-bottom: 100%; /* This is the aspect ratio width to height ratio*/
height: 0;
overflow:hidden; /*hides the parts of the iFRAME that overflow due to negative margins and over 100% sizing*/
}
/*THE ABSOLUTE POSITIONED iFRAME contents WITH NEGATIVE MARGINS AND OVER 100% SIZE IS CODED HERE. SEE THE NORMAL SETTINGS VERSUS THE IE8 SETTINGS AS MARKED. A SEPARATE CSS FILE IS NEEDED FOR IE8 WITH A CONDITIONAL STATEMENT IN THE HEAD OF YOUR HTML DOCUMENT/WEB PAGE*/
.calinside iframe
{
position: absolute;
top: 0;
left: 0;
width: 100% !important;/*must expand to hide white space to the right and below. Hidden overflow by parent above*/
height: 103% !important; /*must expand to hide white space to the right and below. Hidden overflow by parent above*/
/*IE8*/top: -2%;
/*IE8*/left: -2%;
/*IE8*/width: 114% !important;/*For IE8 hides right border and scroll bar area that is white*/
/*IE8*/height: 105% !important; /*hide white space and border below. Hidden overflow by parent above*/
}