La temuta barra di scorrimento orizzontale dell'iframe non può essere rimossa in IE?

StackOverflow https://stackoverflow.com/questions/67354

  •  09-06-2019
  •  | 
  •  

Domanda

Ho un iframe.Il contenuto è più largo della larghezza che sto impostando, quindi l'iframe ottiene una barra di scorrimento orizzontale.Non posso aumentare la larghezza dell'iframe, quindi voglio semplicemente rimuovere la barra di scorrimento.Ho provato a impostare la proprietà di scorrimento su "no" ma questo uccide entrambe le barre di scorrimento e voglio quella verticale.Ho provato a impostare overflow-x su "nascosto" e questo ha ucciso la barra di scorrimento orizzontale in ff ma non in IE.triste per me.

È stato utile?

Soluzione

scrolling="yes"  horizontalscrolling="no" verticalscrolling="yes"

Inseriscilo nel tag iFrame.

Non è necessario scherzare provando a formattarlo in CSS.

Altri suggerimenti

La barra di scorrimento non è una proprietà di <iframe>, è una proprietà della pagina che contiene.Prova a mettere overflow-x: hidden sul <html> elemento della pagina interna.

Potresti provare a inserire l'iframe all'interno di un div e quindi utilizzare il div per lo scorrimento.Puoi controllare lo scorrimento del div in IE senza problemi, IE ha davvero problemi solo con lo scorrimento dell'iframe.Ecco un rapido esempio che dovrebbe risolvere il problema.

<html>
    <head>
        <title>iframe test</title>

        <style>         
        #aTest { 
            width: 120px;
            height: 50px;
            padding: 0;
            border: inset 1px #000;
            overflow: auto;
        }

        #aTest iframe {
            width: 100px;
            height: 1000px;
            border: none;
        }
        </style>
    </head>
    <body>
        <div id="aTest">
            <iframe src="whatever.html" scrolling="no" frameborder="0"></iframe>
        </div>
    </body>
</html>
<iframe style="overflow:hidden;" src="about:blank"/>

dovrebbe funzionare in IE.IE6 presentava problemi nel supportare overflow-x e overflow-y.

Un'altra cosa da notare è che il bordo di IE sull'iframe può essere rimosso solo se imposti l'attributo "frameborder" in camelCase.

<iframe frameBorder="0" style="overflow:hidden;" src="about:blank"/>

sarebbe bello se potessi modellarlo correttamente con i CSS ma non funziona in IE.

Tutte queste soluzioni non hanno funzionato per me o non erano soddisfacenti.Con il DIV scorrevole potresti far scomparire la barra di scorrimento orizzontale, ma avresti sempre quella verticale.

Quindi, per il mio sito dove posso essere sicuro di controllare l'altezza fissa di tutti gli iframe, la seguente soluzione funziona molto bene.Nasconde semplicemente la barra di scorrimento orizzontale con un DIV :)

    <!-- This DIV is a special hack to hide the horizontal scrollbar in IE iframes -->
<!--[if IE]>
<div id="ieIframeHorScrollbarHider" style="position:absolute; width: 768px; height: 20px; top: 850px; left: 376px; background-color: black; display: none;">
</div>
<![endif]-->
<script type="text/javascript">
  if (document.getElementById("idOfIframe") != null && document.getElementById("ieIframeHorScrollbarHider") != null)
  {
    document.getElementById("ieIframeHorScrollbarHider").style.display = "block";
  }
</script>

Puoi anche provare a impostare la larghezza del corpo della pagina inclusa nell'iframe al 99%.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top