Заставьте div занять оставшееся место после боковой панели

0

Я пытаюсь создать очень общий макет здесь с боковой панелью и секцией содержимого справа. Ширина секции боковой панели fixed (здесь 120px), и я хочу, чтобы контейнер с правой стороны занимал оставшееся пространство страницы (с краем 60 пикселей справа).

Вот как выглядит разметка:

<body>
    <div class="wrapper">
        <div class="content">
            <div class="left-sidebar">
                <ul class="sidebar-menu">
                    <li>Item 1</li>
                    <li>Item 2</li>
                </ul>
            </div>
           <div class="right-main-content">
               <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
           </div>
        </div>
    </div>
</body>

Вот и сценарий выше: http://jsfiddle.net/6nLtp/

В моем случае, что происходит, что правильный контейнер идет ниже боковой панели и принимает 100% ширину. Тем не менее, я ожидал, что он займет только оставшееся пространство справа от боковой панели (и с краем 60 пикселей справа от страницы). Контейнер поставляется вместе с боковой панелью, когда я указываю ширину, но я не уверен, зачем мне это нужно? Поскольку элементы div (боковая панель и правый контейнер перемещаются), почему нельзя правильно использовать контент с боковой панелью?

Теги:

5 ответов

0

Я не знаю, если это хороший код, но он работает для меня

.wrapper {width:100%;height:100%;}
.left-sidebar {width:120px;height:200px;margin:20px 0 0 0;border:1px solid red; float:left;}
.right-main-content{margin:20px 60px 0 140px; display:block;padding-top:5px; }
.right-main-content p {border: 1px solid green;}
.sidebar-menu{list-style-type:none;}
.project-picture-bar{height:100px;width:100%;border-top:3px solid grey;border-bottom:3px solid grey;}
0

Попробуйте это... Обновлено Ссылка

.wrapper {width:100%;height:100%;}
.content{position:relative;}
.left-sidebar {width:120px;height:200px;margin:20px 0 0 0;border:1px solid red; position:absolute; }
.right-main-content{margin:20px 0px 0px 0px;padding:20px 10px;border: 1px solid green; position:absolute; left:140px;}
.sidebar-menu{list-style-type:none;}
.project-picture-bar{height:100px;width:100%;border-top:3px solid grey;border-bottom:3px solid grey;}

Удачи... Наслаждайтесь

0

Попробуй это

CSS

.wrapper {width:100%;height:100%;display:inline-block;}
.left-sidebar {max-width:120px;width:20%;height:200px;margin:20px 0 0 0;border:1px solid red;float:left;}
.right-main-content{margin:20px 60px 0 0;width:80%;border: 1px solid green;float:right;}

DEM0

0

Вы можете установить левую <div> в фиксированное положение и поместить правую <div> влево. Если вы сделаете это, убедитесь, что вы используете соответствующие поля для противодействия пространству, которое занимает левый div.

.wrapper {
width:100%;
height:100%;
}
.left-sidebar {
    position: fixed;    /*---- changed this --->*/
    width:120px;
    height:200px;
    margin:20px 0 0 0;
    border:1px solid red;
}
.right-main-content{
    float: left;              /*---- changed this --->*/
    width: auto; 
    margin:20px 0 0 122px;     /*---- changed this --->*/
    border: 1px solid green;
}
.sidebar-menu{
    list-style-type:none;
}
.content{
    margin: 0px auto;
}

рабочий пример:

http://jsfiddle.net/6nLtp/6/

0

Используйте float для достижения результата.

CSS

.wrapper {width:100%;height:100%;}
.content{padding-top:20px;}
.left-sidebar {width:120px;height:200px;margin:0 0 0 0;border:1px solid red;float:left;}
.right-main-content{margin:0 60px 0 140px;border: 1px solid green;}
.sidebar-menu{list-style-type:none;}
.project-picture-bar{height:100px;width:100%;border-top:3px solid grey;border-bottom:3px solid grey;}

демонстрация

  • 0
    В моем случае я дал элементам float, но я забыл написать это в скрипке. Почему это не работает, если я даю float обоим контейнерам (что я и сделал в моем случае)?
  • 0
    Не обоим. Дайте поплавку только «левую боковую панель». Правая боковая панель будет расширяться в оставшееся пространство. Просто оставьте поле слева в соответствии с шириной «левой боковой панели».

Ещё вопросы

Сообщество Overcoder
Наверх
Меню