Как заставить плавающие div заполнять пространство
Вопрос
Я пытаюсь создать " рабочий процесс " панель на веб-странице.
Элементы в рабочем процессе могут быть разной длины.
Может быть достаточно элементов, чтобы заполнить ширину экрана, поэтому поток должен быть перенесен на следующую строку.
Я использую левые плавающие div для этого. Р>
Однако я бы хотел, чтобы элементы div занимали соответствующую ширину экрана.
Если в одну строку могут поместиться только три элемента, то я бы хотел, чтобы эти элементы равномерно помещались в строке с учетом ширины каждого отдельного элемента.
В настоящий момент все, что я могу получить, это заполнить оставшееся пространство последним делением в строке, что часто означает, что все мои элементы выровнены по левому краю, например, Я могу получить макет как это:
AAAA -> BBBBB -> CCCCCCCCCCCCCCCCCCC -> DD -> EEE -> FFFFF -> GGGG -> HHHHH
но я на самом деле хочу, чтобы это выглядело примерно так:
AAAA -> BBBBB -> CCCCCCCCCCCCCCCCCCC -> DD -> EEE -> FFFFF -> GGGG -> HHHHH
если вы понимаете, о чем я.
Нужно ли использовать для этого таблицы, а не плавающие div?
Решение
просто пара других указателей. Вы не должны иметь пустых тегов li, что не является семантически правильным. Также в идеальном мире вы должны не давать имена макетов атрибутов идентификаторов . р>
Лично я бы поместил начальное изображение в ul, а затем поместил заключительное изображение в последний li.
Другие советы
, вероятно, мог бы видеть окружающую разметку, чтобы понять, какие элементы у вас на месте. Вы можете попробовать использовать окружающий div с margin: 0 auto;
Возможно, вам понадобится окружающий div для каждого уровня.
Не трать свое время, просто иди сюда:
Спасибо за оперативные ответы. Я попробую то, что вы предлагаете.
В настоящее время я пытаюсь сделать это с помощью списка, хотя я также не получил ничего с помощью div.
Я попытался вытащить некоторый HTML-код из моих JSP, чтобы попытаться продемонстрировать, где я нахожусь с этим.
Пролеты имеют класс " навигации " который в основном рисует фоновое изображение вокруг текста, чтобы он выглядел как кнопка, а также устанавливает поля / отступы / и т.д. Я пропустил CSS, который напрямую связан с отрисовкой кнопки, поскольку в нашей системе это стандартный фреймворк для отрисовки кнопки. Я включил CSS, который я использую, который напрямую связан с рабочим процессом.
Я пытаюсь нарисовать начальное изображение перед первой кнопкой, а затем нарисовать фоновые изображения за каждой кнопкой, чтобы нарисовать линию между каждой кнопкой для представления потока. Затем я получил конечное изображение в конце потока.
<html>
<body>
<STYLE>
#nav, #nav ul {
list-style: none;
margin: 0px;
width: 700px;
}
#nav li {
list-style: none;
float: left;
padding-left: 10px;
padding-right: 10px;
width: auto;
background-image: url(/lookandfeel/images/navMenuDiv.gif);
background-repeat: repeat-x;
}
li#ending {
background-image: url(/lookandfeel/images/navMenuRight.gif);
background-repeat: no-repeat;
}
li#start {
background-image: url(/lookandfeel/images/navMenuLeft.gif);
background-repeat: no-repeat;
}
.navigation a {
background-image: url(/pdr/images/navigation.gif);
}
</STYLE>
<ul id="nav" style="width: 100%;border: 1px solid">
<li id="start" />
<LI >
<SPAN class="navigation" >AAAAAAAAAA</SPAN>
</li>
<LI >
<SPAN class=navigation >BBBB</SPAN>
</li>
<LI >
<SPAN class=navigation>CCCCCCCCCCCCCCCCC</SPAN>
</li>
<LI>
<SPAN class=navigation>DDDDDDDDD</SPAN>
</li>
<LI>
<SPAN class=navigation>EEEEEEEE</SPAN>
</li>
<LI>
<SPAN class=navigation>FFFFFFFFFFFFFF</SPAN>
</li>
<li>
<SPAN class=navigation>GGGGGGGGGGGGGGGGGGGGGGGGGGGGG</SPAN
</LI>
<li id="ending" />
</ul>
</body>
</html>
Установка элементов li для отображения: inline и присвоение ul свойства text-align: justify помогут вам частично продвинуться (по крайней мере, в FFX3 и IE7). Однако это вызывает некоторые сложности при применении фоновых изображений.
Как бы мне не хотелось говорить, что ничего нельзя сделать, я думаю, что должен согласиться с @johnners относительно окружающего элемента для каждого уровня навигации. Даже если бы вы использовали CSS макета таблицы, вам понадобится какой-то окружающий элемент для каждой «строки», чтобы получить правильное расстояние слева и справа.