我正在尝试制作一个占据浏览器窗口宽度100%的网格,首先我不确定如何进行此网格,其次我希望div在该网格中具有随机位置,但只有在没有被占用的情况下才会填补该位置。
我想我的问题是,我怎么会这样做,如果可能的话。
我猜我需要一个数据库来记录所有位置?
ps:当我说网格时,我不是指960网格或任何框架网格我只是想要一个简单的方格
虽然我正在寻找每个方格15px乘15px而'边框'只有1px
感谢您的帮助。
编辑:所有答案都很棒,一切都是可以接受的我选择了我的答案,因为它是最适合我想做的和我用过的那个,我不是说那个其他人没有工作因为他们工作得很好。我最初的要求是流体网格,但后来改变了,这使得我选择的答案更容易整合到我的项目中。 谢谢大家的帮助!
答案 0 :(得分:3)
您可以使用CSS设置<div>
的位置:
#div1 {
position: absolute;
left: 100px;
top: 100px;
width: 15px;
height: 15px;
}
应该有效。然后,通过他们的左/上(存储那些地方)知道每个div的坐标以及它们有多大,你可以在放置一个带有一些简单数学的新碰撞时检查“碰撞”。
例如,要检查单个div New
是否与Existing
碰撞,您可以检查New
的任何一个角是否在Existing
的范围内广场,例如:
答案 1 :(得分:1)
为了帮助您入门:
<html>
<head>
<title>Grid</title>
<style>
TABLE {
border-collapse : collapse;
border : 5px solid black;
background-color : #ffff99;
}
TD {
border : 5px solid black;
width : 30px;
height : 30px;
background-color :white;
}
TD.selected {
background-color : gray;
}
</style>
</head>
<body>
<table class="alerts">
<?
$columns = 6;
$column = rand(0,$columns-1);
$rows = 10;
$row = rand(0,$rows-1);
for($y=0;$y<$rows;$y++) {
echo '<tr>';
for($x=0;$x<$columns;$x++) {
if($x == $column && $y == $row) {
echo '<td class="selected"> </td>';
} else {
echo '<td> </td>';
}
}
echo '</tr>';
}
?>
</table>
</body>
</html>
返回如下内容:
答案 2 :(得分:0)
您可以使用此JS为每个方块创建网格和ID。
w = $(document).width();
t = w/15;
for(j=0;j<t;j++){
for(i=0;i<t;i++){
$('body').append("<div id='grid_"+j+"x"+ i+"'class='gridsquare'></div");
}
}
之后,您可以对PHP脚本进行AJAX调用(传递每行的平方数),执行以下操作:
这里的问题是,由于您正在处理各种浏览器宽度,因此15px正方形将为不同的浏览器生成不同大小的网格,因此您无法将您的位置真正记录到数据库,因为每个网格大小都将导致不同的位置。
修改强>
忘记添加
CSS:
.gridsquare {
height: 15px; width: 15px; float: left; border: 1px solid black;
}
的jsfiddle:
答案 3 :(得分:0)
这是我的总体想法(抱歉,但是时间太短,无法向您展示整件事):
json_encode()
。)就是这样......不太复杂,没有闪烁的白点。
编辑:无法帮助自己并在jsfiddle中做了一个简短的例子:http://jsfiddle.net/tgwnV/
请注意,我没有时间把它变成方形(或者说很漂亮),但希望你能抓住我的漂移。