#css #layout #html #sticky-footer #overlapping
#css #макет #HTML #липкий нижний колонтитул #перекрывающиеся
Вопрос:
У меня действительно жесткий макет, который я просто не могу разрешить..
- Left column - Fixed,Static (always in view)
- Right column - Fluid/liquid/scrollable
--- Header - fixed
--- left/main fluid/liquid
--- Right/sidebar - fixed width
--- footer
(если вышесказанное непонятно — верхний, левый / основной, правый / сайдбар, нижний колонтитул находятся ВНУТРИ правого столбца)
теперь этот макет вроде как работает ,
<div id="left-col">left col</div>
<div id="container">
<div id="header">header</div>
<div id="main">
<div id="sidebar">sidebar</div>
main
</div>
<div id="footer">footer</div>
</div>
#left-col {
width: 50px;
position: fixed;
background: yellow;
left: 0;
top: 0;
}
#container {
margin-left: 50px;
background: black;
}
#header {
background: green;
}
#main {
background: blue;
position: relative;
}
#sidebar {
position: absolute;
top: 0;
right: 0;
width: 50px;
background: pink;
}
#footer {
background: red;
}
но все же у меня есть одна досадная проблема —
когда основное содержимое недостаточно длинное — боковая панель и нижний колонтитул перекрываются ..
Это потому, что боковая панель расположена в абсолютном положении — но опять же, если я сделаю ее относительной, и страница изменит размер, боковая панель перейдет ПОД основную … (недостаточно места для fluid …)
итак, мой вопрос заключается в следующем ,
У кого-нибудь есть идея, как сохранить нижний колонтитул ПОД боковой панелью? (Липкие трюки jQuery не работают, а трюки CSS здесь довольно хитрые ..)
или какие-либо другие ide для достижения такого макета?
JSFIDDLE:http://jsfiddle.net/VNU6Z /
Комментарии:
1. JSFiddle очень бы помог.
2. спасибо Кайлу и Роберту за ответ — но JSFIddle , как бы это ни казалось милой игрушкой, не дает точных результатов. на самом деле, предложенные здесь макеты РАБОТАЮТ в JSFiddle, но не в самом браузере (проверено в ie6-7-8)..
Ответ №1:
Вы можете использовать float: right вместо position absolute
Ответ №2:
Ким прав. Сделайте div id="sidebar"
float: right и сделайте div id="main"
overflow:hidden
div id="main"
затем изменит размер ваших плавающих элементов, как если бы у него был float: left
Комментарии:
1. спасибо за ответ, у меня были некоторые остатки от экспериментов с css, которые вызвали все проблемы .. в любом случае, я проверил ваше решение во всех браузерах, которые я обычно подтверждаю, и ie6 (как обычно) на самом деле его не понимает… в любом случае, вы указали мне правильное направление. Мне просто нужно будет, наконец, начать отказываться от поддержки ie6. эй, если Microsoft не заботится о нас, почему мы должны заботиться о них, верно?
2. что ж, прошу прощения, но мне нужно кое-что обновить. это НЕ работает в IE — основной фрейм проходит ПОД левым колоном, если задана некоторая высота. Я начинаю думать, что получить подобный кроссбраузерный макет практически невозможно.