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

Как сделать средний div для заполнения пространства между плавающими элементами?

У меня есть три элемента div: левый, средний и правый. Левые и правые фиксированные и плавающие. Я хочу, чтобы средний div заполнил пробел между ними.

Это мой код:

<!DOCTYPE html>
<html>
<head>
   <style>
      * {border: dotted 1px red;}
      #left {
         width: 200px;
         float: left;
      }
      #middle {
         float: left;
      }
      #right {
         width: 200px;
         float: right;
      }
   </style>
</head>
<body>
   <div id="left"  >  left   </div>
   <div id="middle">  middle </div>
   <div id="right" >  right  </div>
</body>
</html>

Любые идеи о том, как это сделать? Я пробовал разные решения, но не смог сделать то, что хочу.

4b9b3361

Ответ 1

Ключ состоит в том, чтобы перестроить ваш html, чтобы иметь middle last, удалить float из middle и заменить его overflow: hidden.

Просмотреть пример скрипта.

HTML

<div id="left"  >  left   </div>
<div id="right" >  right  </div>
<div id="middle">  middle </div>

CSS

#left {
    width: 200px;
    float: left;
}
#middle {
    overflow: hidden;
}
#right {
    width: 200px;
    float: right;
}

Ответ 2

Я смог реплицировать проблему и исправить ее с использованием процентов, а не абсолютных значений. Поскольку вы ищете что-то гибкое между двумя элементами, это должно работать.

#left {
    width: 20%;
    float: left;
    background: #ccc;
}
#middle {
    width: 60%;
    float: left;
    display: block;
    background: #ddd;
}
#right {
    width: 20%;
    float: right;
    background: #bbb;
} 

Здесь демо