htmlbook.ru - Для тех, кто делает сайты
Статьи Книги Шаг за шагом Рецепты Форум Графика для Web
Главная страница > Статьи > Рецепты CSS > Как убрать полосы прокрутки

Как убрать полосы прокрутки

Влад Мержевич

Текстовая версия   Добавить комментарий

Перед тем как убрать полосы прокрутки (скроллбар) с веб-страницы, подумайте, действительно ли вам это так необходимо. Отсутствие возможности прокрутки содержимого веб-страницы создает трудности посетителям сайта для просмотра информации. Если же существует необходимость построения дизайнерских изысков или желание создать своим читателям трудности, то вперед, к делу. Но вас предупреждали!

Фреймы

Для управления отображением полос прокрутки во фреймах используется параметр scrolling. Он может принимать два основных значения: yes — всегда вызывает появление полос прокрутки, независимо от объема информации и no — запрещает их появление (пример 1).

Пример 1. Запрет полосы прокрутки во фреймах

Валидный HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Фреймы</title>
</head>
<frameset cols="200,*">
 <frame src="menu.html" name="MENU" noresize scrolling="no">
 <frame src="content.html" name="CONTENT">
</frameset>
</html>

Как показано в примере, в левом фрейме с именем MENU полосы прокрутки не будет. В соседнем с ним фрейме, хотя параметр scrolling и не указан, полосы прокрутки будут видны, как возможность установленная по умолчанию.

Новые окна

Чтобы удалить скроллбар из новых окон, возможностей HTML будет недостаточно. Универсальный подход требует использования языка JavaScript для создания нового окна. А в качестве одного из параметра метода window.open, который и создает окно, можно указать scrollbar=0. Данный атрибут создает окно без горизонтальных и вертикальных полос прокрутки (пример 2).

Пример 2. Создание нового окна без полос прокрутки

Валидный HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Новое окно</title>
<script type="text/javascript">
window.open("tips.html", "TIP", "width=400, height=300, status=0, menubar=0, location=0, resizable=0, directories=0, toolbar=0, scrollbar=0");
</script>
</head>
<body>
<p>...</p>
</body>
</html>

В данном примере открывается файл tips.html в новом окне размером 400x300 пикселов и без различных элементов навигации, в том числе и без полос прокрутки.

Использование стилей

Еще один способ основан на использовании стилевого атрибута overflow. Если этот параметр применить к тегу <BODY> со значением hidden, скроллбар на веб-странице отображаться не будет (пример 3).

Пример 3. Запрет полосы прокрутки на веб-странице

Валидный HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Полосы прокрутки</title>
<style type="text/css">
BODY { overflow: hidden; }
</style>
<body>
<p>...</p>
</body>
</html>

Точно также можно убрать скроллбар и у других элементов веб-страницы, которые его содержат — некоторые элементы форм, например.

Замечание

Приведенный выше пример не работает в браузере Internet Explorer, чтобы скрыть полосы прокрутки в этом браузере, требуется убрать !DOCTYPE. Но при этом код перестанет быть валидным.

Браузер Internet Explorer поддерживает также свойство overflow-x и overflow-y, позволяющее прятать полосы прокрутки, соответственно, по горизонтали и вертикали (пример 4).

Пример 4. Запрет горизонтальной полосы прокрутки

Невалидный HTML
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Полосы прокрутки</title>
<style type="text/css">
BODY { overflow-y: hidden; }
</style>
<body>
<p>...</p>
</body>
</html>

Если вы попали в ситуацию, когда полос прокрутки по какой-либо причине на экране нет, а информация, тем не менее, есть, но на экран не помещается, «прокрутить» веб-страницу можно с помощью клавиатуры (стрелками вверх и вниз) или мыши. Нажимаем кнопку мыши, когда ее курсор находится в любом месте веб-страницы и, не отпуская, двигаем вниз. Так происходит выделение содержимого и одновременно его прокрутка. Но этот метод, мягко говоря, не очень удобен, и рекомендовать его можно лишь в очень крайних случаях.

Статья опубликована: 03.10.2005 Последнее обновление: 16.04.2008

Прежде, чем писать комментарий к статье, примите во внимание следующие моменты.

  1. Не задавайте вопросы в комментариях, для этой цели предназначен форум, где вы получите нужную помощь.
  2. Удаляются любые комментарии, которые:
    • включают множество ошибок;
    • написаны безграмотно;
    • не имеют отношения к данной статье;
    • не содержат никакой полезной информации для посетителей.
  3. Для выделения отдельных слов используйте следующие команды: [b]жирный[/b], [i]курсив[/i], [color=цвет]цветной текст[/color], [tag]тег[/tag], [var]параметр[/var], [code]пример[/code].
  4. Потренироваться в написании комментариев вы можете в песочнице.

Комментарии к статье

Alex

11.11.2006

The best!!!
А как в сайт из Html & CSS всавить этот скрипт отдельным файлом , для его возможной замены? Если не сложно, напишите как вставить
скрипт adsense отдельным файлом , не в html?

Влад Мержевич

13.11.2006

Скрипты вставляются через тег <script type="text/css" src="file.js"></script>

Вместо file.js пишешь тот файл с программой, который тебе требуется.

Арина

20.11.2006

А как их убрать в Опере - горизонтальные?

Заранее спасибо

Apple

03.01.2007

>>>Скрипты вставляются через тег <script type="text/css" src="file.js"></script> <<<

А может легче использовать параметр href для тега <REL> ?

wakh.viart.ru

04.05.2007

BODY { overflow: hidden }
в ИЕ не работает

Влад Мержевич

08.05.2007

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

Леона

10.05.2007

Будьте любезны,подскажите
как изменить вид скроллбара у элементов веб-страницы?

Влад Мержевич

10.05.2007

<style type="text/css">
body {
scrollbar-face-color: red;
scrollbar-track-color: blue;
scrollbar-darkshadow-color: orange;
scrollbar-shadow-color: green;
scrollbar-highlight-color: lime;
scrollbar-base-color: maroon;
scrollbar-3dlight-color: navy;
scrollbar-arrow-color: white;
}
</style>

Pion2er

25.06.2007

В ИЕ пашет
<body scroll="no">

в Опере не хочет

Влад Мержевич

26.06.2007

В принципе, overflow: hidden работает в браузерах, но только если DOCTYPE не задавать.

BETEP

26.06.2007

Влад, подскажите пожалуйста, набр?л вот на такую ссылку по поводу DOCTYPE

http://www.webmascon.com/topics/coding/25a.asp

если верить этой статье, то в ваших примерах DOCTYPE указан неверно, может из за этого возникают некоторые проблемы?

Влад Мержевич

27.06.2007

Действительно, DOCTYPE лучше полный указывать. Но применительно к overflow: hidden это не поможет. Чтобы пример 3 работал, элемента DOCTYPE вообще не должно быть.

Ярослав

06.07.2007

А как убрать нижнюю полосу прокрутки????

Михаил

16.07.2007

Влад, почему у вас на сайте в справочнике по стилям не описаны стили для скроллбара?
Есть еще другие стили о которых там не упоминается?

Влад Мержевич

24.07.2007

2 Ярослав
См. пример 4.

Сергей

31.07.2007

Влад, да вам бы книгу ою этом написать, я б купил с удовольствием!

Дима

14.08.2007

пример 4. не работает!
Pion2er давал такой ход <body scroll="no"> ,он работает в ИЕ
но убирает все полосы, а мне нужно нижнию.

Влад Мержевич

15.08.2007

Чтобы пример 4 работал, уберите из него DOCTYPE.

Дима

15.08.2007

Влад, вс? правильно вами сказано, убираю "DOCTYPE"
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/strict.dtd">
Полоса пропадает и скрипт меню не работает.
Может есть вариант исправить этот баг?

CyberDragon

08.10.2007

Для того, что бы полосы прокрутки исчезли в опере, то напишите !В! Стиле класса тега Body вот это 'overflow: hidden;' или же в теге <BODY> напишите 'style="overflow:hidden"'. Работает и в ИЕ и в Опере. Если не работает значит коряво написали.

gg

04.01.2008

Влад Мержевич: <script type="text/css" src="file.js">
может лучше
<script type="text/javascrip" src="file.js">

Влад Мержевис

06.01.2008

Ну, конечно, ошибочка произошла.

Sonic

16.01.2008

Скажите, Влад, а можно ли использовать не цветовую палитру для скроллов а изображения?

Влад Мержевич

17.01.2008

Нет.

Максим

22.01.2008

Влад Мержевич скажите пожалусто что мне делать у меня следующая проблема мне необходимо с помощью стилей оформить полосу прокрутки следующим образом:
scrollbar-face-color: #555555;
scrollbar-highlight-color: #cccccc;
scrollbar-shadow-color: #000000;
scrollbar-3dlight-color: #999999;
scrollbar-arrow-color: #cccccc;
scrollbar-track-color: #555555;
scrollbar-darkshadow-color: #333333;

это вс? работает но к сожелени при внесвение
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

раскраска полосы прокрутки пропадает
http://webmascon.com/topics/coding/25a.asp
я проч?л что элемент DOCTYPE очень важен
нелезя ли как то раскрасить полосу прокрутки с использованием тега
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Николай

13.02.2008

Подскажите пожалуйста как добавить полосу прокрутки на страницу с набором фреймов ? Не для одного фрейма, а для всей страницы. Уже месяц бьюсь sad

Алиса

13.03.2008

А как убрать горизонтальную полосу прокрутки так,чтобы он не просто спрятать ее,а чтоб было еще и автоматическое изменение текста.Иначе смотрится как-то не очень когда половину страницы не видно. Мне кто-нибудь может опомочь с этим????? оч надо!!!!!!!!!! зарание спасибо

Николай

18.03.2008

Убрал горизонтальную полосу прокрутки, указав
html { overflow-x: hidden }
правда работает только в IE и FF. Опера не воспринимает.

Денис

21.04.2008

Чтобы вертикальная прокрутка всегда показывалась можно делать так:
<html style="height: 100%; margin-bottom: 1px;">

Светлана

03.05.2008

Спасибо Вам огромное!!! Не ожидала, а нашла ответы сразу на два своих вопроса! Пока вроде все работает... smile

Ф?дор Миннигараев

08.06.2008

Классный сайт! site.vukogurt.ru

Гореверстальщик

23.06.2008

Подскажите пожалуйста, overflow: auto почему-то не хочет работать в 9-й опере. В лисе и в ие все нормально, а вот в опере даже когда поле пустое вертикальный скрол виден. Может оверфлова недостаточно?

skyadmin

18.07.2008

Николай, используйте плавающие фреймы, тогда и полоса прокрутки и фон будут общими...

<IFRAME frameborder=0 scrolling=no src='Main.html' width=800px height=70%>IFRAME не поддерживается!</IFRAME><br>

Bad Request

22.07.2008

В примере 2 есть ошибка.
1. В параметрах нового окна вместо scrollbar=0 нужно scrollbars=0
Этот пример работает корректно, потому что по умолчанию значение scrollbars и так 0.

Добавить комментарий

Имя
Комментарий

Сохранить имя (используется cookie)

Поиск по сайту

Рецепты CSS
Разделы
CSS по теме

overflow
Свойство overflow управляет отображением содержания блочного элемента, если оно целиком не помещается и выходит за область заданных размеров.

Copyright 2002–2008 Влад Мержевич, по всем вопросам пишите по адресу: vlad@htmlbook.ru

О сайте | Планы на будущее | Использование сайта | Борьба с ошибками | Технологии | Поддержать проект