Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 创建了表示计数的堆叠像素网格_Css_Canvas_Responsive Design - Fatal编程技术网

Css 创建了表示计数的堆叠像素网格

Css 创建了表示计数的堆叠像素网格,css,canvas,responsive-design,Css,Canvas,Responsive Design,我正在创建一个像素网格来表示一个计数(见图),并想知道最好的方法是什么 这些瓷砖需要具有响应性(1px、2px、4px)。我可以构建一个超大型的精灵,它包含所有196个@4X的组合,因此它可以完美地扩展到2px和1px,然后构建一个css类 <div class="pixel-block c-000"></div> <div class="pixel-block c-001"></div> …一定有更好的办法吗 任何想法都值得赞赏 下面是一

我正在创建一个像素网格来表示一个计数(见图),并想知道最好的方法是什么

这些瓷砖需要具有响应性(1px、2px、4px)。我可以构建一个超大型的精灵,它包含所有196个@4X的组合,因此它可以完美地扩展到2px和1px,然后构建一个css类

<div class="pixel-block c-000"></div>
<div class="pixel-block c-001"></div>

…一定有更好的办法吗


任何想法都值得赞赏

下面是一个示例,说明了如何在不使用带有196种组合的精灵的情况下完成此操作,只使用网格图像和CSS

想法很简单:

  • 有一个容器可以容纳:
    • 栅格图像(在顶部)
    • 覆盖整个容器高度的“大”条
    • 一个只覆盖剩余部分的“小”条
  • “大条”的宽度等于网格中孔的(计数值/14)*宽度
  • “低条”的高度等于(计数值%14)*网格中孔的高度
我使用了一个带有3px孔(2px+1px间隔)的网格和
data-
属性来设置计数的值,以及一个大条(计数/14)和低条(计数%14)的指示器

下面是一个演示:

.box{
边框:1px实心#6699aa;
宽度:43px;
高度:43px;
位置:相对位置;
背景:#aaccff;
溢出:隐藏;
显示:内联块;
}
.grid{背景:url(http://i.imgur.com/w0jBLzK.png)不重复左上角;
宽度:43px;
高度:43px;
位置:绝对位置;
排名:0;
左:0;
z指数:3;
}
比格巴先生{
高度:43px;
宽度:0px;
背景:黑色;
z指数:2;
浮动:左;
}
劳巴先生{
浮动:左;
宽度:3倍;
高度:0px;
位置:相对位置;
背景:黑色;
}
.box[data big=“1”].bigbar{width:3px;}
.box[data big=“2”].bigbar{width:6px;}
.box[data big=“3”].bigbar{width:9px;}
.box[data big=“4”].bigbar{width:12px;}
.box[data big=“5”].bigbar{宽度:15px;}
.box[data big=“6”].bigbar{width:18px;}
.box[data big=“7”].bigbar{width:21px;}
.box[data big=“8”].bigbar{宽度:24px;}
.box[data big=“9”].bigbar{width:27px;}
.box[data big=“10”].bigbar{宽度:30px;}
.box[data big=“11”].bigbar{width:33px;}
.box[data big=“12”].bigbar{宽度:36px;}
.box[data big=“13”].bigbar{width:39px;}
.box[data big=“14”].bigbar{width:42px;}
.box[data low=“1”].lowbar{height:3px;margin top:39px;}
.box[data low=“2”].lowbar{height:6px;margin top:36px;}
.box[data low=“3”].lowbar{height:9px;margin top:33px;}
.box[data low=“4”].lowbar{height:12px;margin top:30px;}
.box[data low=“5”].lowbar{height:15px;margin top:27px;}
.box[data low=“6”].lowbar{height:18px;margin top:24px;}
.box[data low=“7”].lowbar{height:21px;margin top:21px;}
.box[data low=“8”].lowbar{height:24px;margin top:18px;}
.box[data low=“9”].lowbar{height:27px;margin top:15px;}
.box[data low=“10”].lowbar{height:30px;margin top:12px;}
.box[data low=“11”].lowbar{height:33px;margin top:9px;}
.box[data low=“12”].lowbar{height:36px;margin top:6px;}
.box[data low=“13”].lowbar{height:39px;margin top:3px;}
.box[data low=“14”].lowbar{height:42px;margin top:0px;}


如何确定块/像素处于活动或默认状态?我认为您最好的做法是使用纯HTML/CSS来构建每个块/像素。也就是说,如果我理解正确,计数将从数据库中输入,因此我将把返回的数字插入类(c-001、c-002、c-003等)。这些块将在“卡片”上,因此每页大约有50个。如果您不想使用JavaScript,为什么不将后端的两个(像素开/像素关)类中的一个分配给相应的div?在这种情况下,您不必生成具有数百个类的如此庞大的css…是的,我会这样做-但这仍然依赖于图像精灵。不反对使用JS…@JamieTaylor,我认为你根本不需要精灵。您是否需要按照图示的方式填充网格?也就是说,在填充列后从左下角到左上角向右移动?