Половина фиксированной, с половиной прокручиваемой компоновкой, которую можно прокручивать... CSS
У меня есть экзотический дизайн, который нуждается в следующем. Левая сторона должна прокручиваться, а правая сторона + верхняя часть должна оставаться на месте (фиксированная). См. Прикрепленное изображение.
Я могу выполнить это по положению: исправлено с верхней и правой стороны. Верхняя и правая стороны остаются на месте, пока левые прокрутки.... , НО ПРОБЛЕМА - это то, что больше нет полосы прокрутки, если кто-то приближается, и вы также не можете прокручивать влево-вправо, чтобы увидеть целую страницу
Как можно атаковать такой макет?
Спасибо.
Не удалось отправить код раньше - позвольте мне попробовать еще раз:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Exotic</title>
<style type="text/css">
#top {
background-color: #FF0;
width: 1800px;
height: 50px;
position: fixed;
left: 0px;
top: 0px;
}
#sideLeft {
float: left;
width: 950px;
background-color: #9C0;
clear: left;
}
#sidebarLeft {
background-color: #0CC;
height: 800px;
width: 300px;
float: left;
}
.list {
float: left;
width: 600px;
margin-top: 100px;
}
#ordoner {
background-color: #F90;
float: left;
width: 640px;
height: 800px;
position: fixed;
top: 50px;
left: 950px;
}
#sidebarRight {
width: 210px;
height: 800px;
position: fixed;
top: 50px;
left: 1590px;
background-color: #0CF;
}
</style>
</head>
<body>
<div id="top">
</div>
<div id="sideLeft">
<div id="sidebarLeft"><!--end #sidebarLeft--></div>
<div class="list"><!--end .lisist--></div>
<!--end #sideLeft--></div>
<div id="ordoner"><!--end #ordoner--></div>
<div id="sidebarRight"><!--end #sidebarRight--></div>
<div id="footer"></div>
</body>
</html>
![enter image description here]()
Разъяснение:
Мой css отражает 2 вещи в правой части, но дело в том, что правые и верхние должны быть статичными, а левые прокрутки... И они должны быть горизонтально прокручимы, если пользователь увеличивает масштаб изображения.
Кроме того, я пробовал обертывать вещи в контейнере div, но у этого есть свои проблемы - он прокручивается, но никогда не достигает правой стороны, если окно не максимизируется.
Еще раз спасибо.
Чтобы уточнить: в качестве примера, чтобы получить мою точку зрения... измените размер окна stackoverflow на половину горизонтального размера экрана... Теперь посмотрите, как вы можете прокручивать влево-вправо? Если вы увеличиваете масштаб, вы можете прокручивать влево и вправо, чтобы увидеть всю страницу. Ну, в моем макете, который работает в полноэкранном режиме браузера... как только я изменяю размер этой полосы прокрутки внизу, не появляется вообще, оставляя пользователя без возможности прокрутки по горизонтали. См. Рисунок ниже
Скрипки
http://jsfiddle.net/moby7000/tWb3e/
![enter image description here]()
![enter image description here]()
![New picture of layout with more detail:]()
Ответы
Ответ 1
Не так сложно создать такой макет.
Я создал для вас один, Рабочий скрипт
HTML:
<div class="Container">
<div class="Header">
<p>The Header div height is not fixed (But he can be if you want it to)</p>
<p>This Layout has been tested on: IE10, IE9, IE8, FireFox, Chrome, Safari, Opera. using Pure CSS 2.1 only</p>
</div>
<div class="Content">
<div class="Wrapper">
<div class="RightContent">
<p>You can fix the width of this content.</p>
<p>if you wont, his width will stretch just as it needs to.</p>
</div>
<div class="LeftContent">
<p>this will scroll</p>
</div>
</div>
</div>
</div>
CSS
*
{
margin: 0;
padding: 0;
}
html, body, .Container
{
height: 100%;
}
.Container:before
{
content: '';
height: 100%;
float: left;
}
.Header
{
margin-bottom: 10px;
background-color: #6ea364;
}
.Content
{
position: relative;
z-index: 1;
}
.Content:after
{
content: '';
clear: both;
display: block;
}
.Wrapper
{
position: absolute;
width: 100%;
height: 100%;
}
.Wrapper > div
{
height: 100%;
}
.LeftContent
{
background-color: purple;
overflow: auto;
}
.RightContent
{
background-color: orange;
float: right;
margin-left: 10px;
}
Bonus:
с небольшим изменением в CSS, вы можете создать красивую прокрутку.
Смотрите Fiddle
Edit:
Если вы хотите установить значение ширины влево, это на самом деле больше размера тела (и иметь горизонтальную прокрутку), сделайте что.
<div class="LeftContent">
<div style="width:1200px;"> <-- better to aplly the width from the CSS
..<The content>..
</div>
</div>
Ответ 2
Вы пробовали
overflow-y: scroll;
в теле?
Ответ 3
вам нужно добавить overflow:auto;
в область, которую вы хотите прокрутить.