Подтвердить что ты не робот

Два div; слева должна быть фиксированная ширина, справа должна заполнять остальную часть пространства

У меня есть следующий код HTML:

<body> 
<div id="Frame">

    <div id="Body">
        <div id="Panel">Side panel, fixed width.</div>
        <div id="Content">The rest of the content, should be dynamic width and fill up rest of space horizontally.</div>
    </div>

    <div id="Foot">
        <div>FooBar.</div>
    </div>
</div>
</body>

То, что я пытаюсь сделать, это сделать так, чтобы #Panel имела фиксированную ширину (~ 200 пикселей) и с левой стороны и что #Content сразу справа от #Panel, но имеет значение "динамической" ширины и заполняет остальную часть пространства в экране браузера по горизонтали. Я пробовал много разных вещей, но не смог заставить его работать - самое дальнее, что я получил, до такой степени, что #Panel находится слева, а #Content находится справа от #Panel и заполняет остальной части пространства, но #Content начинается ниже #Panel, тогда как я хотел бы, чтобы он начинался в том же вертикальном положении.

Я нашел В CSS, как мне получить столбец с фиксированной шириной слева с правой таблицей, использующей остальную ширину?, однако я не смог применить его к HTML выше.

4b9b3361

Ответ 1

Вот эта ссылка, примененная к вашему коду:

CSS

#frame   { background:pink }
#panel   { background:orange; width:200px; float:left }
#content { background:khaki; margin-left:200px }
#foot    { background:cornflowerblue }

HTML

<div id='frame'>
  <div id='body'>

    <div id='panel'>
      Side panel, fixed width.
    </div>

    <div id='content'>
      The rest of the content, should be dynamic width and fill up rest of space 
      horizontally.
    </div>

  </div><!-- End #body -->

  <div id='foot'>
    <div>FooBar.</div>
  </div>

</div><!-- End #frame -->

Хорошо работает! Хотя, ИМХО, вам не нужна рамка или тело (но я не знаю генеральный план). Это будет выглядеть так:

<div id='panel'>
  Side panel, fixed width.
</div>

<div id='content'>
  The rest of the content, should be dynamic width and fill up rest of space 
  horizontally.
</div>

<div id='foot'>
  <div>FooBar.</div>
</div>