полоса прокрутки внутри фиксированного div

#css #css-position

#css #css-позиция

Вопрос:

У меня фиксированный div, и мне нужно, чтобы содержимое можно было прокручивать, когда его ширина превышает размер окна. Мне нужен этот div с position: fixed, потому что он находится рядом со столбцом с display: none, и если я перемещу его или расположу любым другим способом, он займет место этого скрытого столбца. Итак, проблема в том, что я не могу заставить прокрутку работать внутри этого div. Это довольно большой CSS, поэтому я опубликую то, что считаю актуальным.

CSS

 #main {
    background-color: yellow;
    height: 100%;
    overflow: auto;
    position: fixed;
    top: 10px;
    left: 380px;
}

#container {
    background-color: red;
    height: auto;
    margin-left: 20px;
    width: 700px/*655px*/;
    overflow: auto;
}

#tabs {
    background-color: blue;
    float: left;
    height: 100%;
    margin-top: -187px;
    margin-left: 20px;
    width: 500px/*50%*/;
}

ul#slider {
    height: 350px;
    list-style: none;
    margin: 0px;
    padding: 0px;
    width: 700px;
    overflow: hidden;
    position: relative;
}

ul#thumb {
    background-color: #000;
    list-style: none;
    margin: 0 0 0 500px;
    width: 200px;
    position: relative;
    overflow: auto;
    /*overflow: hidden;*/
}

ul#thumb a {
    border: 1px solid #bfbfbf;
    display: block;
    float: left;
    height: 40px;
    margin: 10px 0 10px 24px;
    width: 40px;
    opacity: 0.75;
    overflow: hidden;
}
  

И HTML:

 <div id="main">
<div id="container">
    <ul id="slider">
        <li id="1"><img src="img/img01.jpg" alt="img01" width="700" height="350" /></li>
        <li id="2"><img src="img/img02.jpg" alt="img02" width="700" height="350" /></li>
        <li id="3"><img src="img/img03.jpg" alt="img03" width="700" height="350" /></li>
        <li id="4"><img src="img/img04.jpg" alt="img04" width="700" height="350" /></li>
    </ul>
    <ul id="thumb">
        <li><a href="#1"><img src="img/img01.jpg" alt="img01" width="50" height="50" /></a></li>
        <li><a href="#2"><img src="img/img02.jpg" alt="img02" width="50" height="50" /></a></li>
        <li><a href="#3"><img src="img/img03.jpg" alt="img03" width="50" height="50" /></a></li>
        <li><a href="#4"><img src="img/img04.jpg" alt="img04" width="50" height="50" /></a></li>
    </ul>
    <img id="title" src="img/title.jpg" width="119" height="61" alt="" />
    <div id="tabs">
        <div class="verticalslider" id="text">
            <ul class="verticalslider_tabs">
                <li><a href="#">Tab 01</a></li>
                <li><a href="#">Tab 02</a></li>
                <li><a href="#">Tab 03</a></li>
                <li><a href="#">Tab 04</a></li>                        
            </ul>
            <ul class="verticalslider_contents">
                <li>
                    <table>
                        <tr><td>Description tab 01</td></tr>
                    </table>
                </li>
                <li>
                    <table>
                        <tr><td>Description tab 02</td></tr>
                    </table>
                </li>
                <li>
                    <table>
                        <tr><td>Description tab 03</td></tr>
                    </table>
                </li>
                <li>
                    <table>
                        <tr><td>Description tab 04</td></tr>
                    </table>
                </li>
            </ul>
        </div>
    </div>
</div>
  

Div «container» — это тот, который нужно прокручивать при изменении размера окна браузера (я работаю с Opera и FF), но пока содержимое справа просто исчезает, и его невозможно увидеть. Вертикальная полоса прокрутки также не отображается, но если я использую колесико мыши, я могу прокручивать вниз.

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

Ответ №1:

Мне нужен этот div с position: fixed, потому что он находится рядом со столбцом с display: none, и если я перемещу его или расположу любым другим способом, он займет место этого скрытого столбца.

Скрыть элемент с сохранением его размера можно с помощью visibility: hidden стиля.

Комментарии:

1. Я попробовал visibility: hidden, но затем javascript прерывается, и скрытый столбец не отображается при нажатии (у меня нет большого доступа для изменения javascript).

2. использование display: none также сохраняет размер элемента, вы можете проверить это, у меня есть.

3. Я использую display: ни один, кроме следующего div, не займет это место, если я не установлю его исправленным. Возможно, этому мешает что-то еще…

4. Спасибо NGLN, я согласился с вашим предложением и изменил javascript 🙂