Мне трудно подумать над решением следующей проблемы.
Позвольте мне сначала проиллюстрировать это:
Положение
У меня 26 предметов (в этом примере, в общем, число неизвестно ..), но только 12 могут быть видны одновременно .. У меня также есть некоторые элементы навигации (зеленые поля)
Фиксированная ширина фиолетовых и зеленых коробок, но высота фиолетового может варьироваться в зависимости от содержимого.
Все нормально, и я могу сделать это с помощью CSS.
Я использую неупорядоченный список (плавающих элементов) для своих элементов, и я обозначил первые два элемента <li>
как элементы навигации. Первый поплавок влево, второй поплавок вправо.
Все это работает, и поток остальных предметов проходит между двумя зелеными.
Задача
Но теперь мне нужно, чтобы зеленые элементы были во втором ряду (или последнем, если эта концепция помогает, поскольку будет только два ряда)
Я хочу иметь возможность скрывать первые элементы X и показывать следующие элементы X, и они сами занимают свои позиции ..
Чтобы перефразировать вопрос, могу ли я расположить некоторые элементы (зеленые) таким образом, чтобы контролировать их положение, но при этом позволить им мешать потоку из их новых местоположений?
Надеюсь, это понятно. Если не спросите, и я предоставлю как можно больше информации.
Вещи, которые я пробовал, не работали
- Перемещение зеленого элемента с отрицательным нижним полем или положительным верхним полем. Они переместятся со своего места, но другие элементы не будут занимать свою позицию.
- Использование абсолютного положения, но затем элементы полностью удаляются из потока, и они не влияют на другие элементы, поэтому они перекрываются с другими элементами.
[ скрытые серым цветом предметы скрыты, я просто показываю их, чтобы вы знали, что они существуют .. ]
Код для начала работы
<style type="text/css">
ul,li{padding:0;margin:0; list-style-type:none;}
ul{
width:155px;
position:relative;
height:125px;
border:1px solid red;
}
li{
float:left;
background-color:purple;
margin-left:5px;
margin-top:5px;
width:25px;
text-align:center;
line-height:25px;
color:white;
}
.prev{
color:black;
background-color:green;
}
.next{
color:black;
float:right;
margin-right:5px;
background-color:green;
}
</style>
и
<body>
<ul>
<li class="prev"><</li>
<li class="next">></li>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
<li>10</li>
<li>11</li>
<li>12</li>
<li>13</li>
<li>14</li>
<li>15</li>
<li>16</li>
<li>17</li>
</ul>
</body>