#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 🙂