Элемент CSS div - как показать только горизонтальные полосы прокрутки?

У меня есть контейнер div, и я определил его стиль следующим образом:

div#tbl-container 
{
    width: 600px;   
    overflow: auto;    
    scrollbar-base-color:#ffeaff
}

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

Как мне это сделать?

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
206
0
525 821
10
Перейти к ответу Данный вопрос помечен как решенный

Ответы 10

CSS3 имеет свойство overflow-x, но я не ожидал бы от него большой поддержки. В CSS2 все, что вы можете сделать, это установить общую политику scroll и работать с вашими widths и heights, чтобы не испортить их.

Ответ принят как подходящий

У вас не должно быть одновременно горизонтальных и вертикальных полос прокрутки, если вы не сделаете контент достаточно большим, чтобы они требовались.

Однако вы обычно делаете это в IE из-за ошибки. Проверьте другие браузеры (Firefox и т. д.), Чтобы узнать, действительно ли это делает только IE.

IE6-7 (среди других браузеров) поддерживает предлагаемое расширение CSS3 для независимой установки полос прокрутки, которое можно использовать для подавления вертикальной полосы прокрутки:

overflow: auto;
overflow-y: hidden;

Вам также может потребоваться добавить для IE8:

-ms-overflow-y: hidden;

поскольку Microsoft угрожает переместить все стандартные свойства pre-CR в их собственное поле «-ms» в стандартном режиме IE8. (Это имело бы смысл, если бы они всегда так делали, но сейчас это, скорее, неудобство для всех.)

С другой стороны, вполне возможно, что IE8 все равно исправит ошибку.

О Боже, ты спас мне день! Хотя я не пробовал спецификацию ie-8. Теперь все в порядке, FF & IE-7. Это все, что мне нужно. Еще раз спасибо !

Satya Kalluri 06.11.2009 10:16

вы также можете сделать его overflow: auto и указать максимальную фиксированную высоту и ширину таким образом, когда текст или что-то еще там, переполняется, будет отображаться только необходимая полоса прокрутки

Чтобы показать оба:

<div style = "height:250px; width:550px; overflow-x:scroll ; overflow-y: scroll; padding-bottom:10px;">      </div>

Скрыть ось X:

<div style = "height:250px; width:550px; overflow-x:hidden; overflow-y: scroll; padding-bottom:10px;">      </div>

Скрыть ось Y:

<div style = "height:250px; width:550px; overflow-x:scroll ; overflow-y: hidden; padding-bottom:10px;">      </div>

Мне также пришлось добавить к стилю white-space: nowrap;, иначе элементы будут переноситься в область, к которой мы убираем возможность прокрутки.

white-space: nowrap; является ключевым, без него ваши элементы будут складываться / переноситься.
Ricardo Zea 02.05.2012 21:37

white-space: nowrap, похоже, не работает на сафари Firefox или Chrome даже с изображениями, которые у меня есть внутри дисплея div: встроенные или в виде блоков

user1484249 27.06.2012 04:31

Мы должны установить overflow: auto и скрыть полосу прокрутки, которую мы не используем для работы с неподдерживаемым браузером CSS3. Посмотри на этот CSS Overflow; XME.im

.box-author-txt {width:596px; float:left; padding:5px 0px 10px 10px;  border:1px #dddddd solid; -moz-border-radius: 0 0 5px 5px; -webkit-border-radius: 0 0 5px 5px; -o-border-radius: 0 0 5px 5px; border-radius: 0 0 5px 5px; overflow-x: scroll; white-space: nowrap; overflow-y: hidden;}


.box-author-txt ul{ vertical-align:top; height:auto; display: inline-block; white-space: nowrap; margin:0 9px 0 0; padding:0px;}
.box-author-txt ul li{ list-style-type:none;  width:140px; }

Пожалуйста, объясните свой ответ.

Himanshu Jansari 11.12.2012 10:22

Используйте следующее

<div style = "max-width:980px; overflow-x: scroll; white-space: nowrap;">
<table border = "1" style = "cellpadding:0; cellspacing:0; border:0; width=:100%;" >

Это решение без указания высоты / ширины для родительского div, так что это будет отзывчивый для изменения размера окна и наиболее полезная причина, по которой горизонтальные полосы прокрутки появляются только при необходимости.

.container{
    padding:20px;
    border:dotted 1px;
    white-space:nowrap;
    overflow-x:auto;
}

.box{
    width:100px;
    height:180px;
    background-color: red;
    margin:10px;
    display:inline-block
}

Взгляните на ДЕМО

Я использую свойства CSS: 1) «overflow-x: auto»; 2) «overflow-y: hidden»; 3) «white-space: nowrap»;

Не забудьте установить ширину как для контейнера, так и для внутренних компонентов DIVS. Свойство "white-space: nowrap" позволяет внутреннему DIVS не переходить на другую строку.

Учитывая следующий HTML:

<div class = "container"> 
  <div class = "inner-1"></div>
  <div class = "inner-2"></div>
  <div class = "inner-3"></div>
</div>

Я использую следующий CSS только для горизонтальной прокрутки:

.container {
  height: 80px;
  width: 600px;
  overflow-x: auto;
  overflow-y: hidden; 
  white-space: nowrap;
}
.inner-1,.inner-2,.inner-3 {
  height: 60px;
  max-width: 250px;
 display: inline-block; /* this should fix it */
}

Fiddle: https://jsfiddle.net/qrjh93x8/ (не работает с приведенным выше кодом)

Я добавил пробел, но мой не работает: jsfiddle.net/jjq4xgz5/1. Спасибо.

Si8 23.05.2017 16:35

Другие вопросы по теме