Как показать 4 <li> в одном ряду, а остальные 4 <li> в другом [дубликаты]

0

У меня есть запрос на php, который занимает много изображений из базы данных, мне нужно показать 4 изображения в первой строке, остальные 4 изображения в следующей строке и так далее.

Я думал, что смогу сделать это с помощью css, но я не могу = (

HTML

<div id="photo_block" style="border:2px dotted <?echo $color;?>; height:1000px;" >

    <?
        while ($item=$select_items->fetch()) {
    ?>

<ul class="items">
    <li>
        <div class="item_block">
            <img src="<?echo $item['src']?>">
        </div>
    </li>
</ul>

    <?
        }
    ?>

</div>

CSS

#photo_block{
    width:800px;
}
.items li{
    display: inline;
}
.items li .item_block img{
    width: 100px;
    height: 100px;
}

Спасибо тебе за помощь!

  • 0
    В этом случае проще использовать таблицу (без границ)
Теги:

4 ответа

2
Лучший ответ
  1. вы должны сбросить заполнение и край элемента ul
  2. ваш размер img установлен на 100px поэтому они будут помещаться внутри вашего #photo_block 8 раз подряд

Как насчет: http://jsfiddle.net/4Ntzq/

0

Использовать float: left; вместо display: inline, затем добавьте новое правило, которое делает clear: left каждый 4-й элемент <li>.

HTML:

<div id="photo_block" style="border:2px dotted <?echo $color;?>; height:1000px;" >

  <ul class="items">
    <? while ($item=$select_items->fetch()): ?>

    <li>
        <div class="item_block">
            <img src="<?echo $item['src']?>">
        </div>
    </li>

    <? endwhile ?>
  </ul>

</div>

CSS:

#photo_block{
    width:800px;
}
.items li{
    float: left;
}
.items li:nth-child(4n)
{
    clear: left;
}
.items li .item_block img{
    width: 100px;
    height: 100px;
}
0

Почему вы создаете новый список с одним элементом для каждого отдельного изображения? Я бы вообще не использовал список и просто помещал их в div four за раз, затем масштабировал изображения до (чуть ниже) 25%.

<div class='imagerow'>
<?
    $i = 0;
    while ($item=$select_items->fetch()) {
      if($i > 0 && $i % 4 == 0) {
?>
</div>
<div class='imagerow'>
<?
      } // end if
?>
 <img src="<?echo $item['src']?>">
<?
   } // end while
?>
</div>

с CSS

.imagerow img { width: 24.75%; }

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

0

HTML

<div id="photo_block" style="border:2px dotted <?echo $color;?>; height:1000px;" >
<ul class="items">
   <? while ($item=$select_items->fetch()) { ?>
    <li>
      <div class="item_block">
         <img src="<?echo $item['src']?>">
       </div>
    </li>
   <? } ?>
</ul>
</div>

CSS

#photo_block{
    width:500px;
}
.items li{
    width:100px;
    margin-right:5px;
    float: left;
    list-style: none;
}
.items li .item_block img{
    width: 100px;
    height: 100px;
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню