Ужасную горизонтальную полосу прокрутки iframe нельзя удалить в IE?
-
09-06-2019 - |
Вопрос
У меня есть iframe.Содержимое шире, чем ширина, которую я устанавливаю, поэтому iframe получает горизонтальную полосу прокрутки.Я не могу увеличить ширину iframe, поэтому хочу просто удалить полосу прокрутки.Я попытался установить для свойства прокрутки значение «нет», но это убивает обе полосы прокрутки, и мне нужна вертикальная.Я попытался установить для overflow-x значение «скрытый», и это убило горизонтальную полосу прокрутки в ff, но не в IE.мне грустно.
Решение
scrolling="yes" horizontalscrolling="no" verticalscrolling="yes"
Поместите это в тег iFrame.
Вам не нужно возиться с попытками отформатировать это в CSS.
Другие советы
Полоса прокрутки не является собственностью <iframe>
, это свойство страницы, которую он содержит.Попробуйте поставить overflow-x: hidden
на <html>
элемент внутренней страницы.
Вы можете попробовать поместить iframe внутри 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>
<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 это не работает.
Все эти решения мне не помогли или были неудовлетворительными.С помощью прокручиваемого DIV вы можете убрать горизонтальную полосу прокрутки, но тогда у вас всегда будет вертикальная полоса прокрутки.
Итак, для моего сайта, где я могу быть уверен, что могу контролировать фиксированную высоту всех iframe, следующее решение работает очень хорошо.Он просто скрывает горизонтальную полосу прокрутки с помощью 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>
Вы также можете попробовать установить ширину тела страницы, включенной в iframe, на 99%.