Мне нужен способ создать стену из блоков. Идея заключалась в следующем: я получаю информацию через php, затем я повторяю их в div.
Stylesheet
.block{
min-height:100px;
min-width:190px;
background-color:#999;
float:left;
margin-bottom:10px;
margin-left:5px;
margin-right:5px;
}
.holder{
width:800px;
height:100%;
margin: 0 auto;
}
Здесь html:
<html>
<head>
<link href="css/style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div class='holder'>
<? *connect to the db*
my_query=mysql_query("SELECT * FROM news");
while($array=mysql_fetch_array(my_query)){
echo "<div class='block' id='block_".$array['id']."'>".$array['text']."<div>";
}
?>
</div>
</body>
</html>
Теперь проблема состоит в том, что, очевидно, что блоки имеют одинаковую высоту и ту же ширину, и поэтому поплавок влево создает ужасный запас между блоками и правой стороной держателя.
Как они должны быть http://img17.imageshack.us/img17/1813/cy44.png Как они отображают http://img716.imageshack.us/img716/9703/lnyr.png Идеи: для ширины я мог бы использовать jquery возможно, создавая идентификатор эхом.
if($('#block_'+id).css('width')>590){$('#block_'+id).css('width','790')}
if($('#block_'+id).css('width')>390){$('#block_'+id).css('width','590')}
if($('#block_'+id).css('width')>190){$('#block_'+id).css('width','390')}
Это должно сделать трюк для ширины, но как насчет высоты? Должен ли я попытаться создать функцию, установите абсолютное положение всего элемента на основе высоты элемента, который раньше?
Хунгерстар указал, что уже существует масонство. Это сделал трюк.
Я не понимаю вашего требования. Но вы можете сделать одну вещь, чтобы установить класс comman для всех элементов, которые говорят ".elements", и после визуализации вы можете получить все элементы, которые вы можете использовать для всех элементов, подобных приведенным ниже.
$ (Документ).ready (функция() {
$('.elements') // and you do want you want to do.
})