固定容器内任意个div填充算法
<!DOCTYPE html>
<html> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title> </title>
<style>
#box{
height: 600px;
width: 600px;
border: 1px solid black;
}
</style>
</head> <body>
<input id="sr" />
<input type="button" id="bt" value="自动生成div" />
<div id="box"></div>
</body>
<script>
window.onload = function () {
var aBtn = document.getElementById('bt');
var oBox = document.getElementById('box');
var oSr = document.getElementById('sr');
var str = '';
var num = 0;
var flag = 0;
var aColor = ['red', 'blue', 'green', 'yellow', 'purple', 'pink', 'gray'];
//自动生成100个10*10的div
aBtn.onclick = function () {
str = '';
num = oSr.value; //3
cnum = Math.round(Math.sqrt(num)); //2
lnum = Math.floor(num / cnum); //1
xnum = 0;
if(num != 3){
for (var i = 0; i < lnum; i++) {
for (var j = 0; j < cnum + xnum; j++) {
if (i == lnum - 1) {
xnum = num - cnum * lnum;
}
str += '<div style = "float:left;width:' + Math.floor(oBox.clientWidth / (cnum + xnum)) + 'px;height:' + Math.floor(oBox.clientHeight / lnum) + 'px;background:' + aColor[(i + j) % aColor.length] + ';"></div>';
}
str += '<br />';
}
}else{
for (var i = 0; i < cnum; i++) {
for (var j = 0; j < lnum + xnum; j++) {
if (i == cnum - 1) {
xnum = num - cnum * lnum;
}
str += '<div style = "float:left;width:' + Math.floor(oBox.clientWidth / (lnum + xnum)) + 'px;height:' + Math.floor(oBox.clientHeight / cnum) + 'px;background:' + aColor[(i + j) % aColor.length] + ';"></div>';
}
str += '<br />';
}
} oBox.innerHTML = str;
}
}
</script> </html>
效果如下:

固定容器内任意个div填充算法的更多相关文章
- windows8 开发教程 教你制作 多点触控Helper可将任意容器内任意对象进行多点缩放
http://blog.csdn.net/wangrenzhu2011/article/details/7732907 (转) 实现方法: 对Manipulation进行抽象化 使不同容器可共用多点缩 ...
- html中的div、td 、p 等容器内强制换行和不换行的实现
div.td .p 等容器内强制换行和不换行,在某些情况下还是比较实用的,下面本文整理了一些相关方面的知识,并有具体的实现方法,需要的朋友可以参考下1.强制不换行,同时以省略号结尾. 代码如下:< ...
- Open gl 的不规则图形的4联通种子递归填充和扫描线种子递归填充算法实现
实验题目:不规则区域的填充算法 实验目的:验证不规则区域的填充算法 实验内容:利用VC与OpenGL,实现不规则区域的填充算法. 1.必做:实现简单递归的不规则区域填充算法. 2.选做:针对简单递归算 ...
- CGA填充算法之种子填充算法
CGA填充算法之种子填充算法 平面区域填充算法是计算机图形学领域的一个很重要的算法,区域填充即给出一个区域的边界 (也可以是没有边界,只是给出指定颜色),要求将边界范围内的所有象素单元都修改成指定的颜 ...
- 【OpenCV新手教程之十五】水漫金山:OpenCV漫水填充算法(Floodfill)
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/28261997 作者:毛星云( ...
- Flume+Kafka收集Docker容器内分布式日志应用实践
1 背景和问题 随着云计算.PaaS平台的普及,虚拟化.容器化等技术的应用,例如Docker等技术,越来越多的服务会部署在云端.通常,我们需要需要获取日志,来进行监控.分析.预测.统计等工作,但是云端 ...
- 只用CSS实现容器内图片上下左右居中
一直以来,大家都知道,DIV容器内设置 text-align:center 即可让图片居中,但是DIV内默认的图片是上对齐,不会上下居中,如果想要实现这样的效果,JS判断是比较麻烦的,因为DIV容器内 ...
- 图像处理之泛洪填充算法(Flood Fill Algorithm)
泛洪填充算法(Flood Fill Algorithm) 泛洪填充算法又称洪水填充算法是在很多图形绘制软件中常用的填充算法,最熟悉不过就是 windows paint的油漆桶功能.算法的原理很简单,就 ...
- 图像处理------泛洪填充算法(Flood Fill Algorithm) 油漆桶功能
泛洪填充算法(Flood Fill Algorithm) 泛洪填充算法又称洪水填充算法是在很多图形绘制软件中常用的填充算法,最熟悉不过就是 windows paint的油漆桶功能.算法的原理很简单,就 ...
随机推荐
- python Tkinter图形用户编程简单学习(一)
Events(事件) Events are given as strings, using a special event syntax:事件以字符串的方式给出,使用特殊的事件语法:<modif ...
- WPF中关于配置文件的读取
在WPF中的配置文件的读取也是经常用到的一个操作,虽然很基础,但是也记录一下,以后忘记了可以看一看. 首先就是先新建一个Application Configuration Flie后缀名是.confi ...
- webpack相关文章
0.https://doc.webpack-china.org/concepts/ (webpack中文文档) 1.https://segmentfault.com/a/119000000617877 ...
- 双系统在Linux下查看win的硬盘(Ubuntu 16.04 挂载Windows的 硬盘)
一般情况下,Linux的桌面系统能够直接查看到计算机各个硬盘的文件情况 但是,当我们想通过命令行查看Windows下的硬盘的时候,会发现在 /media/ (一般Windows下的盘会挂载到这里)文件 ...
- Database项目中关于Procedure sp_refreshsqlmodule_internal的错误
最近项目中发现一怪问题,使用DB项目发布数据库时,总提示 “(110,1): SQL72014: .Net SqlClient Data Provider: Msg 1222, Level 16, S ...
- 查bug受气了,反思
昨天改bug了一天,上午出现bug的原因是Boolean和boolean使用BeanUtils等工具无法自动赋值.我们写的时候注意大小写. 下午查了一个下午没有找到任何原因. 但是我受了气,因为报错点 ...
- C++友元函数实现
友元函数是一种特殊的函数,它必须要在类中进行声明,但其本身并不是类的成员函数,但友元函数可以访问类的私有成员变量. 友元函数的好处: 1.实现类之间的数据共享 2.提高程序运行效率,方便编程 友元函数 ...
- Linux fork exec等
http://www.cnblogs.com/leoo2sk/archive/2009/12/11/talk-about-fork-in-linux.html http://www.cnblogs.c ...
- 【解题报告】[动态规划] - PID90 / 未出现的子串
原题地址:http://www.rqnoj.cn/problem/90 解题思路:题目看起来不太像动态规划... 我用一个数组f[i][j]来表示在数组第i个元素的后面第一次出现j的位置,为-1则是没 ...
- SGU 505 Prefixes and suffixes
题解 现将字符串排序: 那么某前缀在字符串中出现肯定是连续的:写几个案例就知道了:这是记录每个字符在以前缀排名的rank : 然后将字符串反序: 再排序:依照前缀,可以知道相同名字的后缀也会出现在 ...