我有一个图块(或div)容器,我希望该容器居中,而图块在容器中对齐。
因此,如果窗口很小:
..[s][s][s]..
..[s][s].....
如果窗口扩大了一点:
...[s][s][s]...
...[s][s]......
进一步:
.[s][s][s][s].
.[s]..........
我试过了:
#container's-parent: { display: block; text-align: center; }
#parent: { display: inline-block; text-align: left; }
.tiles: { display: inline-block }
但这似乎不起作用。
我希望此功能至少可以在Chrome中运行,但最终还需要支持最新的FF,Safari和IE 10+
FWIW:现在是2017年,网格布局模块可以立即使用(codependemo)。如果浏览器支持适合您,请使用grid。如果没有,请继续阅读…。
正如@ Skadi2k3的答案中所提到的,使用CSS最好的方法是进行一系列媒体查询。
话虽如此,如果您使用的是诸如LESS之类的预处理器-这并不是一件困难或容易出错的任务。(尽管,是的,CSS仍然很长很丑)
@item-width:100px;
@item-height:100px;
@margin: 5px;
@min-cols:2;
@max-cols:12; //set an upper limit of how may columns you want to write the media queries for
.loopingClass (@index-width) when (@index-width <= @item-width * @max-cols) {
@media (min-width:@index-width) {
#content{
width: @index-width;
}
}
.loopingClass(@index-width + @item-width);
}
.loopingClass (@item-width * @min-cols);
上面的mixin将以以下形式吐出一系列媒体查询:
@media (min-width: 200px) {
#content {
width: 200px;
}
}
@media (min-width: 300px) {
#content {
width: 300px;
}
}
@media (min-width: 400px) {
#content {
width: 400px;
}
}
...
@media (min-width: 1200px) {
#content {
width: 1200px;
}
}
因此,使用一个简单的标记,例如:
<ul id="content">
<li class="box"></li>
<li class="box"></li>
...
<li class="box"></li>
</ul>
剩下的CSS(少):
#content {
margin:0 auto;
overflow: auto;
min-width: @min-cols * @item-width;
max-width: @max-cols * @item-width;
display: block;
list-style:none;
background: aqua;
}
.box {
float: left;
height: @item-height - 2 *@margin;
width: @item-width - 2*@margin;
margin:@margin;
background-color:blue;
}
…您将获得理想的结果。
我需要做的就是根据自己的需要更改在LESS mixin中使用的变量-得到的确切布局。
假设我有300px X 100px的项目,最少2列,最多6列,边距为15px-我只是像这样修改变量:
@item-width:300px;
@item-height:100px;
@margin: 15px;
@min-cols:2;
@max-cols:6;
我试图使用Struts 2 我在 glassfish 服务器上上传时遇到以下错误: 部署过程中发生错误:加载应用程序时出现异常:java.lang.IllegalState异常:ContainerBase.add子级:开始:org.apache.catalina.生命周期异常:java.lang.NoClassDefFoundError: org/spingframewor /core/io/su
我正在尝试使用Thymeleaf与Apache Tiles 2. x的集成。他们有一个如何使其工作的指南,所以我遵循了它,但现在我被卡住了。 基本上,这种集成允许使用JSP和Thymeleaf模板,根据指南,您应该能够通过在标题定义文件中设置属性来判断使用哪个。默认选项是Thymeleaf。 因为我正在慢慢从JSP迁移,绝大多数模板都是JSP,所以我需要使用这个属性,但是我得到一个错误,我的标题定
我找不到struts-tiles2-1.4.0-SNAPSHOT的源代码。jar版本的平铺。jar文件位于http://people.apache.org/~pbenedict/struts-osgi/org/apache/struts/struts-tiles2/1.4.0-SNAPSHOT/location。
我计划使用Spring Boot将MVC应用程序从Spring 3移植到Spring 4。 这个web应用程序使用Apache Tiles。 考虑到百里香叶似乎是Spring的新标准,我有点困惑,并且集成得很好。 在这个应用程序中配置Tiles是一件痛苦的事情。 我们在这个应用程序中有大约20个JSP页面。 问题: 胸腔和瓷砖是相似的概念吗?(模板引擎?) 我已经看到胸腔叶可以和瓷砖一起使用…我不
我想将磁贴 3 集成到我的 Web 应用程序 spring3 struts2 Hibernate中,但我没有任何想法要开始。我看到的所有示例都仅使用带有瓷砖的 struts2,没有Spring的集成。
几个月来,我一直在尝试各种方法来创建基于二维磁贴的游戏。我一直让每个磁贴都是“磁贴”类的一个单独对象。磁贴对象存储在一个二维对象数组中。这已被证明是非常不切实际的,主要是在同时渲染多个磁贴的性能方面。我只允许在玩家渲染的一定距离内绘制磁贴,但这也不太好。当我尝试在游戏中编辑磁贴的值时,我也遇到了对象返回空指针异常的问题。这与2D数组中的对象未正确初始化有关。 有没有其他更简单的方法可以做到这一点?