2010-09-17 4 views
1
 
+-----------------------------------------------------+ 
|.....................................................| 
|..header height: 128px...............................| 
|.....................................................| 
+-----------------------------------------------------+ 
|.............|.......................................| 
|.sidebar.....|..Lorem ipsum..........................| 
|.width:......|.......................................| 
|.140px.......|..+---------------------------------------------+ 
|.............|..|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx| 
|.............|..|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx| 
|.............|..|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx| 
|.............|..|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx| 
|.............|..+---------------------------------------------+ 
|.............|.......................................| 
|.............|.......................................| 
|.............|.......................................| 
|.............|..frame should be as large as the......| 
|.............|..entire viewport or larger depending..| 
|.............|..on the context.......................| 
+-----------------------------------------------------+ 

Я пытаюсь создать макет 2 столбца (боковая панель + область содержимого) с заголовком (и, возможно, колонтитул), где боковая панель имеет фиксированную ширину и область содержимого является жидкостью , Сложность заключается в том, что область содержимого эффективно обертывает ее содержимое, поэтому содержимое не переполняется.CSS вопрос Компоновка столба жидкости оберточной содержание

Я хотел бы знать, есть ли способ CSS для этого, и если не самый лучший подход Javascript к нему, так как у меня были некоторые трудности с поддержкой кросс-браузера.

+0

ваш ASCII рисунок пытается изобразить желаемый результат, или является «xxxx' зоны выхода из контейнера проблемы, которую вы пытаетесь исправить? –

+0

Возможно, было бы неплохо показать некоторый фактический код/​​содержание, чтобы мы точно знали, в чем проблема. –

+0

ASCII - это разрыв контейнера (что не должно произойти). – SynBiotik

ответ

0

Попробуйте это.

#content { 
    margin-top: 128px; 
    maring-left: 140px; 
} 
#sidebar { 
    position: fixed; 
    left: 0; 
    top: 128px; 
    width: 140px; 
} 
+0

позиция: исправлено не работает в IE <7 - плюс вам действительно не понадобится, что для этого макета, поскольку float будет более чем способен позиционировать эту боковую панель в нужном месте – Alex

0

Это будет делать это для вас:

HTML

<div id="header"></div> 
<div id="sidebar"></div> 
<div id="content"></div> 

CSS

#header { 
    height: 128px; 
} 

#sidebar { 
    float: left; 
    width: 140px; 
} 

#content { 
    margin-left: 140px; 
} 

Вы можете увидеть an example here.

+0

Это css похож на тот, который я использую, и как таковой вызывает проблему. – SynBiotik

+0

Что такое HTML/CSS для элемента, который ускользает от '# content'? Вышеприведенный CSS отлично подходит для меня в нескольких проектах, поэтому должно быть что-то уникальное в вашем элементе escape. – Pat

+0

Любой элемент блока с шириной больше доступной ширины, учитывая, что #content имеет ширину браузера ... – SynBiotik

0

После того, как я исследовал этот вопрос по существу, я пришел к выводу, что его просто невозможно сделать с помощью css совместимым способом (и я даже не рассматриваю IE6). Возможные решения включают либо javascript, либо таблицы. Я выбрал меньшее зло (таблицы), поскольку javascript привел к более сложному решению, и обработка события onResize может облагаться налогом в браузере в зависимости от сложности вызываемой функции. Некоторые проблемы с поисковой системой не важны, учитывая, что это приложение для интрасети. Единственная реальная проблема - доступность.

Я бы очень рад быть опровергнуто, хотя :)

Смежные вопросы