Страшную горизонтальную полосу прокрутки iframe нельзя удалить в IE? - PullRequest
19 голосов
/ 16 сентября 2008

У меня есть iframe. Содержимое шире, чем ширина, которую я устанавливаю, поэтому iframe получает горизонтальную полосу прокрутки. Я не могу увеличить ширину фрейма, поэтому хочу просто удалить полосу прокрутки. Я попытался установить свойство прокрутки на «нет», но это убивает обе полосы прокрутки, и я хочу вертикальную. Я попытался установить overflow-x на «скрытый», и это убило горизонтальную полосу прокрутки в ff, но не в IE. мне грустно.

Ответы [ 6 ]

44 голосов
/ 23 января 2009
scrolling="yes"  horizontalscrolling="no" verticalscrolling="yes"

Поместите это в тэг iFrame.

Вам не нужно возиться с попыткой отформатировать это в CSS.

25 голосов
/ 16 сентября 2008

Полоса прокрутки не является свойством <iframe>, это свойство содержащейся на ней страницы. Попробуйте поместить overflow-x: hidden в элемент <html> внутренней страницы.

5 голосов
/ 16 сентября 2008

Вы можете попробовать поместить iframe в div, а затем использовать div для прокрутки. Вы можете без проблем управлять прокруткой в ​​div в IE, IE действительно имеет проблемы только с прокруткой iframe. Вот быстрый пример, который должен помочь.

<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>
0 голосов
/ 09 июня 2010

Вы также можете попробовать установить ширину тела страницы, включенной в iframe, на 99%.

0 голосов
/ 30 января 2010

Все эти решения не работали для меня или не были удовлетворительными. С помощью прокручиваемого DIV вы можете убрать горизонтальную полосу прокрутки, но тогда у вас всегда будет вертикальная.

Итак, для моего сайта, где я могу быть уверен, что могу контролировать фиксированную высоту всех фреймов, это следующее решение работает очень хорошо. Он просто скрывает горизонтальную полосу прокрутки с помощью 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 голосов
/ 16 сентября 2008
<iframe style="overflow:hidden;" src="about:blank"/>

должно работать в IE. В IE6 возникли проблемы с поддержкой overflow-x и overflow-y.

Еще одна вещь, на которую следует обратить внимание, это то, что граница IE в iframe может быть удалена, только если вы установите атрибут frameborder в camelCase.

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

было бы неплохо, если бы вы могли правильно оформить его с помощью CSS, но он не работает в IE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...