оборачивание полных элементов div вокруг плавающего элемента div - PullRequest
2 голосов
/ 26 апреля 2011

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

Я пробовал каждую комбинацию position, display, width и right свойства, которые я мог придумать, но ничто не дает мне то, что я хочу.Я должен подумать, что мне нужно установить .fill divs на display: inline-block;, а затем управлять их шириной с помощью свойства width или right, но ничего, что я пробую, не дает мне available width.

Обратите внимание, что я не могу заранее знать, какие div будут рядом с плавающим div, поскольку высота всех div является переменной, поэтому я не могу установить явную ширину для .fill div.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html version="-//W3C//DTD XHTML 1.1//EN" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:s
chemaLocation="http://www.w3.org/1999/xhtml http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd">
<head>
  <title>float test</title>
  <style type="text/css">
    html, body, div {
      margin: 0;
      border: 0;
      padding: 0;
    }
    #container {
      position: relative;
      width: 100%;
      overflow: hidden;
    }
    #right {
      width: 20em;
      height: 40em;
      margin: 0 0 0 1em;
      float: right;
      background-color: #88f;
      opacity: .5;
    }
    .fill {
      height: 3em;
      margin: 1em;
      background-color: #f88;
      opacity: .5;
    }
  </style>
</head>
<body>
  <div id="container">
    <div id="right"></div>
    <div id="left">
      <div class="fill"></div><div class="fill"></div><div class="fill"></div><div class="fill"></div>
      <div class="fill"></div><div class="fill"></div><div class="fill"></div><div class="fill"></div>
      <div class="fill"></div><div class="fill"></div><div class="fill"></div><div class="fill"></div>
      <div class="fill"></div><div class="fill"></div><div class="fill"></div><div class="fill"></div>
   </div>
  </div>
</body>
</html>

1 Ответ

3 голосов
/ 26 апреля 2011

добавить overflow: hidden; к .fill

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...