it-swarm-pt.tech

A temida barra de rolagem horizontal do iframe não pode ser removida no IE?

Eu tenho um iframe. O conteúdo é mais largo do que a largura que estou definindo, então o iframe obtém uma barra de rolagem horizontal. Não consigo aumentar a largura do iframe, então quero apenas remover a barra de rolagem. Eu tentei definir a propriedade scroll como "no", mas isso mata as duas barras de rolagem e eu quero a vertical. Tentei definir o overflow-x como "oculto" e isso matou a barra de rolagem horizontal no ff, mas não no IE. triste por mim.

19
mrjrdnthms
scrolling="yes"  horizontalscrolling="no" verticalscrolling="yes"

Coloque isso em sua tag iFrame.

Você não precisa se preocupar em tentar formatar isso em CSS.

44
ivor biggun

A barra de rolagem não é uma propriedade do <iframe>, é uma propriedade da página que contém. Tente colocar overflow-x: hidden no <html> elemento da página interna.

25
Jim

Você pode tentar colocar o iframe dentro de um div e, em seguida, usar o div para a rolagem. Você pode controlar a rolagem no div em IE sem problemas, IE realmente só tem problemas com a rolagem iframe. Aqui está um exemplo rápido que deve resolver o 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>
5
Rich Adams

Você também pode tentar definir a largura do corpo da página incluída no iframe como 99%.

0
Toby Artisan

Todas essas soluções não funcionaram para mim ou não foram satisfatórias. Com o DIV rolável, você poderia fazer a barra de rolagem horizontal desaparecer, mas você sempre teria a vertical.

Portanto, para meu site, onde posso ter certeza de controlar a altura fixa de todos os iframes, a solução a seguir funciona muito bem. Ele simplesmente oculta a barra de rolagem horizontal com um 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>
0
Lou
<iframe style="overflow:hidden;" src="about:blank"/>

deve funcionar no IE. O IE6 teve problemas com o overflow-x e overflow-y.

Outra coisa a se notar é que a borda do IE no iframe só pode ser removida se você definir o atributo "frameborder" em camelCase.

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

seria bom se você pudesse estilizá-lo adequadamente com CSS, mas não funciona no IE.

0
scunliffe