我想创建一个网格布局与响应方块。
我觉得我应该可以这样做与CSS网格布局,但有麻烦设置高度每个正方形等于宽度。
在每一个方块之间设置一条阴沟也有困难。
我用Flexbox会更好吗?
目前我的HTML看起来像这样,但将是动态的,所以更多的方块可能会被添加。当然,它需要具有响应性,因此理想情况下使用媒体查询将其折叠为一列。
<div class="square-container">
<div class="square">
<div class="content">
</div>
</div>
<div class="square">
<div class="content spread">
</div>
</div>
<div class="square">
<div class="content column">
</div>
</div>
</div>
使用css网格,这是我所得到的
.square-container{
display: grid;
grid-template-columns: 30% 30% 30%;
.square {
}
}
我能够用flexbox做得更远一些,并且能够使用空隙将正方形与一个很好的阴沟对齐,但是仍然在努力获得与每个正方形的宽度相匹配的高度。
我没有找到任何这样做的例子,无论是flexbox或grid,但任何例子都将是赞赏的。
谢谢
padding-bottom
技巧是最常用的方法。
您可以将它与Flexbox和CSS Grid结合起来,并且由于使用percent作为边距/填充会给Flex/Grid项带来不一致的结果(在较旧的浏览器版本中,请参见下面的编辑注释),因此可以添加一个额外的包装,或者像这里一样,使用pseudo,因此带有percent的元素不是Flex/Grid项。
编辑:注意,有一个更新的规范,现在应该给出一致的结果,当使用在Flex/Grid项目。但是请注意,这个问题仍然发生在旧版本上。
注意,如果要向content
元素添加内容,则需要将其定位为绝对位置,以保持正方形的纵横比。
小提琴演示-Flexbox
编辑2:在一个评论中,有人问我如何有一个居中的文本,所以我在下面的片段中添加了这个内容。
null
.square-container {
display: flex;
flex-wrap: wrap;
}
.square {
position: relative;
flex-basis: calc(33.333% - 10px);
margin: 5px;
border: 1px solid;
box-sizing: border-box;
}
.square::before {
content: '';
display: block;
padding-top: 100%;
}
.square .content {
position: absolute;
top: 0; left: 0;
height: 100%;
width: 100%;
display: flex; /* added for centered text */
justify-content: center; /* added for centered text */
align-items: center; /* added for centered text */
}
<div class="square-container">
<div class="square">
<div class="content">
<span>Some centered text</span>
</div>
</div>
<div class="square">
<div class="content spread">
</div>
</div>
<div class="square">
<div class="content column">
</div>
</div>
<div class="square">
<div class="content spread">
</div>
</div>
<div class="square">
<div class="content column">
</div>
</div>
</div>
问题内容: 我想创建一个带有响应正方形的网格布局。 我觉得我应该可以使用CSS Grid布局来做到这一点,但是在将每个正方形的高度设置为等于宽度时遇到麻烦。 在每个正方形之间设置水槽时也遇到麻烦。 使用flexbox会更好吗? 目前,我的HTML看起来像这样,但是它将是动态的,因此可以添加更多的正方形。当然,它需要响应,因此理想情况下将使用媒体查询将其折叠到一列。 使用CSS网格,据我所知 我可以
问题内容: 我在长度为4+的div内有一系列文章,没有任何四舍五入的行标记。我需要将其表示为每行3个文章(列)的表格,大概用display: grid。每篇文章都有一个页眉,一个节和一个页脚。 如何 在每行文章的内部为每个页眉实现相等的高度,为每个部分提供相等的高度以及与文章底部对齐的相等高度的页脚?可能吗 我应该使用display: table吗? PS我需要根据屏幕宽度动态更改每行的文章数。谢
我是JavaFX的新手,我正在尝试制作一个棋盘。首先,我想制作一个基于数组的填充随机颜色的方格网格。我不知道为什么,但是方块没有填满网格的其余部分。我还想使用约束来设置网格的高度和宽度。 左上方只出现一个方块,为什么会这样呢?
媒体查询助手类 Media Query Helper Classes Jquery Mobile给html元素增加了用来模拟浏览器的水平竖直方向以及常用的最?最大宽度css媒介查询class.这些class会在加载,调整大小以及方向变化时更新,使你能够在css中切断这些class,以创建有响应的布局,即使在不支持媒介查询的浏览器中也可以实现 方向类 Orientation Classes 取决于浏
我是一个非常活跃的Dash用户,我已经开始发现我的Dash使用中有很多限制,我意识到关于如何将组件转换为dash的信息/内容绝对有限,有过时和非常简单的例子...我对Javascript或React几乎没有任何了解,我完全不知道如何转换组件。 我试图将响应式网格布局组件从react.js转换为Ploly Dash,但我不知道在这种情况下应该如何处理属性?链接到组件:https://github.c
问题内容: 假设我有一个直方图脚本,可构建960 500 svg图形。如何使它响应,以便调整图形的宽度和高度是动态的? 问题答案: 还有另一种方法,不需要重新绘制图形,它涉及修改元素上的viewBox和preserveAspectRatio属性: 15年11月24日更新 :大多数现代浏览器都可以从推断出SVG元素的长宽比,因此您可能不需要保持图表的大小为最新。如果需要支持较旧的浏览器,可以在窗口调