Flexbox 垂直重新排序项目
Flexbox reorder items vertically
我一直在想办法如何垂直重新排列两个项目。我记得不久前用 flexbox 做过类似的事情,并且已经查找了再次执行此操作的方法,但是当我尝试实现 flexbox 并为项目提供订单号时,没有任何反应。我需要的是 .trail-title
堆叠在 .trail-items
.
下面
如何使用 flexbox 让它们垂直切换位置?
这是我创建的一个 JSFidde:
https://jsfiddle.net/tb1sv7n8/15/
#flash-breadcrumbs {
display: flex;
flex-wrap: wrap;
-webkit-flex-flow: column wrap;
flex-flow: column wrap;
flex-direction: column;
}
.trail-items {
order: 1;
height: 1em;
}
.trail-title {
height: 1em;
}
.breadcrumbs,
.breadcrumbs a {
color: #544f47;
font-size: .9em;
font-weight: normal;
}
<nav id="flash-breadcrumbs" class="breadcrumb-trail breadcrumbs">
<div class="tg-container">
<h1 class="trail-title">Title of Article: The Love of This</h1>
<ul class="trail-items">
<li class="trail-item"><span>This here is the trail: The Love of This</span></li>
</ul>
</div>
</nav>
您需要将 flex
应用于 .tg-container
div,因为它是两者的父级,并将 order
属性 的值更改为 -1
用于 .trail-items
div,然后将其置于 .trail-title
:
之上
.tg-container {
display: flex;
/*flex-wrap: wrap; not necessarry*/
-webkit-flex-flow: column wrap;
flex-flow: column wrap; /* this is enough */
/*flex-direction: column; not necessarry*/
}
.trail-items {
order: -1; /* modified */
height: 1em;
}
.trail-title {
height: 1em;
}
.breadcrumbs, .breadcrumbs a {
color: #544f47;
font-size: .9em;
font-weight: normal;
}
<nav id="flash-breadcrumbs" class="breadcrumb-trail breadcrumbs">
<div class="tg-container">
<h1 class="trail-title">Title of Article: The Love of This</h1>
<ul class="trail-items">
<li class="trail-item">
<span>This here is the trail: The Love of This</span>
</li>
</ul>
</div>
</nav>
您使用了错误的 CSS 选择器:弹性容器必须是 #flash-breadcrumbs .tg-container
- 在您的代码 .tg-container
中,作为 #flash-breadcrumbs
的子项,是只有弹性项目...
然后您可以根据需要添加order
设置:
#flash-breadcrumbs .tg-container {
display: flex;
flex-wrap: wrap;
-webkit-flex-flow: column wrap;
flex-flow: column wrap;
flex-direction: column;
}
.trail-items {
order: 1;
height: 1em;
}
.trail-title {
order: 2;
height: 1em;
}
.breadcrumbs,
.breadcrumbs a {
color: #544f47;
font-size: .9em;
font-weight: normal;
}
<nav id="flash-breadcrumbs" class="breadcrumb-trail breadcrumbs">
<div class="tg-container">
<h1 class="trail-title">Title of Article: The Love of This</h1>
<ul class="trail-items">
<li class="trail-item"><span>This here is the trail: The Love of This</span></li>
</ul>
</div>
</nav>
将 flex-direction
值从 column
更改为 column-reverse
比对每个弹性项目应用不同的 order
值要简单得多。但这仅适用于 flex 项目,因此您应该将其直接应用于 .tg-container
。优化了你 CSS:
#flash-breadcrumbs .tg-container {
display: flex;
-webkit-flex-flow: column-reverse wrap;
flex-flow: column-reverse wrap;
}
.trail-items,
.trail-title {
height: 1em;
}
.breadcrumbs,
.breadcrumbs a {
color: #544f47;
font-size: .9em;
font-weight: normal;
}
<nav id="flash-breadcrumbs" class="breadcrumb-trail breadcrumbs">
<div class="tg-container">
<h1 class="trail-title">Title of Article: The Love of This</h1>
<ul class="trail-items">
<li class="trail-item"><span>This here is the trail: The Love of This</span></li>
</ul>
</div>
</nav>
我一直在想办法如何垂直重新排列两个项目。我记得不久前用 flexbox 做过类似的事情,并且已经查找了再次执行此操作的方法,但是当我尝试实现 flexbox 并为项目提供订单号时,没有任何反应。我需要的是 .trail-title
堆叠在 .trail-items
.
如何使用 flexbox 让它们垂直切换位置?
这是我创建的一个 JSFidde: https://jsfiddle.net/tb1sv7n8/15/
#flash-breadcrumbs {
display: flex;
flex-wrap: wrap;
-webkit-flex-flow: column wrap;
flex-flow: column wrap;
flex-direction: column;
}
.trail-items {
order: 1;
height: 1em;
}
.trail-title {
height: 1em;
}
.breadcrumbs,
.breadcrumbs a {
color: #544f47;
font-size: .9em;
font-weight: normal;
}
<nav id="flash-breadcrumbs" class="breadcrumb-trail breadcrumbs">
<div class="tg-container">
<h1 class="trail-title">Title of Article: The Love of This</h1>
<ul class="trail-items">
<li class="trail-item"><span>This here is the trail: The Love of This</span></li>
</ul>
</div>
</nav>
您需要将 flex
应用于 .tg-container
div,因为它是两者的父级,并将 order
属性 的值更改为 -1
用于 .trail-items
div,然后将其置于 .trail-title
:
.tg-container {
display: flex;
/*flex-wrap: wrap; not necessarry*/
-webkit-flex-flow: column wrap;
flex-flow: column wrap; /* this is enough */
/*flex-direction: column; not necessarry*/
}
.trail-items {
order: -1; /* modified */
height: 1em;
}
.trail-title {
height: 1em;
}
.breadcrumbs, .breadcrumbs a {
color: #544f47;
font-size: .9em;
font-weight: normal;
}
<nav id="flash-breadcrumbs" class="breadcrumb-trail breadcrumbs">
<div class="tg-container">
<h1 class="trail-title">Title of Article: The Love of This</h1>
<ul class="trail-items">
<li class="trail-item">
<span>This here is the trail: The Love of This</span>
</li>
</ul>
</div>
</nav>
您使用了错误的 CSS 选择器:弹性容器必须是 #flash-breadcrumbs .tg-container
- 在您的代码 .tg-container
中,作为 #flash-breadcrumbs
的子项,是只有弹性项目...
然后您可以根据需要添加order
设置:
#flash-breadcrumbs .tg-container {
display: flex;
flex-wrap: wrap;
-webkit-flex-flow: column wrap;
flex-flow: column wrap;
flex-direction: column;
}
.trail-items {
order: 1;
height: 1em;
}
.trail-title {
order: 2;
height: 1em;
}
.breadcrumbs,
.breadcrumbs a {
color: #544f47;
font-size: .9em;
font-weight: normal;
}
<nav id="flash-breadcrumbs" class="breadcrumb-trail breadcrumbs">
<div class="tg-container">
<h1 class="trail-title">Title of Article: The Love of This</h1>
<ul class="trail-items">
<li class="trail-item"><span>This here is the trail: The Love of This</span></li>
</ul>
</div>
</nav>
将 flex-direction
值从 column
更改为 column-reverse
比对每个弹性项目应用不同的 order
值要简单得多。但这仅适用于 flex 项目,因此您应该将其直接应用于 .tg-container
。优化了你 CSS:
#flash-breadcrumbs .tg-container {
display: flex;
-webkit-flex-flow: column-reverse wrap;
flex-flow: column-reverse wrap;
}
.trail-items,
.trail-title {
height: 1em;
}
.breadcrumbs,
.breadcrumbs a {
color: #544f47;
font-size: .9em;
font-weight: normal;
}
<nav id="flash-breadcrumbs" class="breadcrumb-trail breadcrumbs">
<div class="tg-container">
<h1 class="trail-title">Title of Article: The Love of This</h1>
<ul class="trail-items">
<li class="trail-item"><span>This here is the trail: The Love of This</span></li>
</ul>
</div>
</nav>