Cri*_*ìna 5 html javascript css flexbox responsive
我试图创建一个Flexbox的响应式布局,让我交替两个方向row和row-reverse。
也许您可以通过一些图像更好地理解它(注意框的顺序):
并调整大小:
或者仍然:
你可以想象一个箭头穿过每个盒子,一定可以按照数字的顺序穿过1到8(就像一条蛇)。
如何使用 flexbox 实现它?
我想我可以使用orderCSS 属性,但我错过了一种动态设置它的方法。我不认为我可以用 JavaScript 实现这个结果,因为没有办法获得动态行的编号(除了丑陋的黑客,我想避免它们)。那么,你有什么想法吗?
谢谢你。
如果你想根据我的代码写一个例子,你可以使用这个:
.flexbox-container {
display: flex;
flex-wrap: wrap;
}
.flex-item {
width: 380px;
height: 100px;
background: red;
margin: 5px;
font-family: sans-serif;
color: white;
text-align: center;
font-size: 2em;
line-height: 150%;
}Run Code Online (Sandbox Code Playgroud)
<div class="flexbox-container">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
<div class="flex-item">4</div>
<div class="flex-item">5</div>
<div class="flex-item">6</div>
<div class="flex-item">7</div>
<div class="flex-item">8</div>
</div>Run Code Online (Sandbox Code Playgroud)
我可以看到这种情况发生的唯一方法是手动设置顺序,然后使用媒体查询作为断点 - 这是一个示例
.flexbox-container {
display: flex;
flex-wrap: wrap;
}
.flex-item {
width: calc(50% - 10px);
height: 100px;
background: red;
margin: 5px;
font-family: sans-serif;
color: white;
text-align: center;
font-size: 2em;
line-height: 150%;
}
.flex-item:nth-child(1) {
order: 1;
}
.flex-item:nth-child(2) {
order: 2;
}
.flex-item:nth-child(3) {
order: 4;
}
.flex-item:nth-child(4) {
order: 3;
}
.flex-item:nth-child(5) {
order: 5;
}
.flex-item:nth-child(6) {
order: 6;
}
.flex-item:nth-child(7) {
order: 8;
}
.flex-item:nth-child(8) {
order: 7;
}
@media only screen and (max-width: 768px) {
.flex-item {
width: calc(33.33333% - 10px);
}
.flex-item:nth-child(1) {
order: 1;
}
.flex-item:nth-child(2) {
order: 2;
}
.flex-item:nth-child(3) {
order: 3;
}
.flex-item:nth-child(4) {
order: 6;
}
.flex-item:nth-child(5) {
order: 5;
}
.flex-item:nth-child(6) {
order: 4;
}
.flex-item:nth-child(7) {
order: 7;
}
.flex-item:nth-child(8) {
order: 8;
}Run Code Online (Sandbox Code Playgroud)
<div class="flexbox-container">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
<div class="flex-item">4</div>
<div class="flex-item">5</div>
<div class="flex-item">6</div>
<div class="flex-item">7</div>
<div class="flex-item">8</div>
</div>Run Code Online (Sandbox Code Playgroud)