I am having a tough time thinking a solution to the following problem.
Let me illustrate it first
Situation
I have 26 items (in this example, in general the number is not known..) but only 12 can be visible at one time.. I also have some navigation elements (the green boxes)
Width of purple and green boxes is fixed but height of purple can vary according to content ..
All is normal and i can do it with css.
I am using an unordered list (of floated items) for my items and i have designated the first two <li>
elements as the navigations ones. First has float left and second float right.
It all works and the flow of the rest of the items goes between the two green ones.
Problem
But now i need the green items to be on the second row (or last if that concept helps as there will only be two rows)
I want to be able to hide the first X elements and show the next X and they fall in position on their own ..
To rephrase the question, can i position some elements (the green ones) in such a way to control their position but still allow them to interfere with the flow from their new locations ?
I hope this is clear. If not ask away and i will provide as much info as possible..
Things i have tried that did not work
- Moving the green item with negative bottom margins, or positive top margins. They will move out of their place but the other elements will not fill in their position.
- Using absolute position, but then the elements are completely removed from the flow and they do not affect the other elements so they overlap with the other elements..
[they grayed out items are hidden, i just show them so you know that they exist..]
Some code to get you started
<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>
and
<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>