2014-01-10 6 views
0

Я хочу разместить div, прикрепленный слева и рядом, я хочу разместить другой div.Место div рядом с фиксированным div

Представьте себе веб-страницу twitter, я хочу зафиксировать левую панель (там, где вы пишете твиты), и рядом с ней хочу разместить панель, где вы читаете твиты.

Теперь у меня есть следующий код:

<div id="container"> 
    <div id=fixed-menu> 
    </div> 
    <div id="content"> 
    </div> 
</div> 

#fixed-menu { 
    position:fixed; 
    background: #fff; 
    padding: 10px; 
    top:60px; 
    left: 10px; 
    width:300px; 
    max-width: 300px; 
} 

#content { 
    background: #fff; 
    padding-top: 10px; 
} 

Таким образом, в DIV с ID = «содержание» появляются на левой стороне так, неподвижная меню не появляется, потому что он находится под содержанием DIV ,

Если я использую margin-left в #content, ошибка решена, но я не хочу использовать это, любое другое решение?

Спасибо.

+0

Вы пробовали использовать поплавки? .... – BuddhistBeast

+0

Я не совсем понимаю, что у вас есть. Вам просто нужно, чтобы фиксированное меню отображалось над содержимым div #? Потому что вы можете использовать свойство z-index. – bboysupaman

+1

Вам не хватает кавычек в вашем HTML-коде, и вы также не ссылаетесь на фоновый цвет правильно ... Кроме того, исходя из того, что вы нам даете, ваше фиксированное меню представлено ниже вашего контента, это то, что вы хотите? – BuddhistBeast

ответ

1

Одна из первых вещей, которую следует отметить, заключается в том, что, помещая позицию Исправлено в фиксированном меню div #, вырывает ее из обычного потока документов. Это означает, что другие элементы блока/встроенного уровня не знают об этом. Также, исправляя это, вы фиксируете его относительно окна. Если вы хотите, чтобы он был «зафиксирован» внутри контейнера, а не в какой-то определенной точке экрана, я бы пошел с положением: абсолютным, а затем положением: относительным по его родительскому контейнеру.

В любом случае проблема, с которой вы сталкиваетесь, когда содержимое div # не учитывает положение фиксированного элемента, связано с тем, что фиксированный элемент больше не является частью обычного потока документов. Добавление z-index в фиксированное меню div # должно вывести его над содержимым. Тем не менее, вы увидите перекрытие и должны будете учитывать смещение содержимого div # с любым полем содержимого div # или дополнением к родительскому контейнеру.

Если вы посмотрите на эту скрипку: http://jsfiddle.net/f38aj/

CSS:

#container { 
    position: relative; 
    height: 700px; 
    padding: 0 0 0 320px; 
} 

#fixed-menu { 
    position: fixed; 
    background: red; 
    padding: 10px; 
    top:8px; 
    left: 8px; 
    width: 300px; 
    max-width: 300px; 
} 

#content { 
    background: blue; 
    padding-top: 10px; 
} 

Если вы заметили, мы создаем отступы в контейнере, где мы в конечном итоге накладывания объект DIV # контейнер.

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

Боковое примечание, работающее с фиксированным/абсолютным позиционированием, особенно полезно в некоторых сумасшедших случаях, но для этого требуется немного более тщательная проверка ваших частей вашей команды. Если вы начнете получать в z-индексы, вы можете захотеть взглянуть на библиотеку, как на меньшее или на то, чтобы создать глобальные переменные css, что упростит управление тем, что может превратиться в почти неуправляемый опыт.

надеюсь, что это поможет.

+0

Ваш ответ хороший ответ, но я стараюсь избегать абсолютных значений (padding), потому что я хочу, чтобы дизайн отвечал дизайну. Существует другое решение, или, может быть, я должен подумать о том, что использование doenst фиксировано ?. Спасибо – RdlP

+0

Можете ли вы подробнее рассказать о том, как должен выглядеть конечный продукт/вести себя как? Если вы не хотите фиксированных элементов, но вы хотите, чтобы иллюзия одной стороны была зафиксирована, а другая сторона прокручивается. Вы могли бы просто сделать что-то, где фиксированное меню будет перемещено влево, а содержимое div будет размещено рядом с ним. Тогда содержимое div может иметь высоту/ширину с переполнением: прокрутка. (это не лучший опыт для мобильных пользователей, поскольку в некоторых мобильных устройствах есть несколько проблем с прокручиваемыми div-файлами, но iOS и Android исправили многие из этих проблем в своих последних выпусках). Таким образом, он охватывает «maintstream». – Brodie

+0

. ответ правильный. благодаря! – RdlP

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