如何旋转两个Flexbox行?

3

我有两个类似于这样的弹性盒子行。

enter image description here

是否可以将它们旋转90度,以便它们位于彼此旁边?我需要它们看起来像这样。

enter image description here

<ul class="flex-container longhand">
  <li class="flex-item">1</li>
  <li class="flex-item">2</li>
  <li class="flex-item">3</li>
  <li class="flex-item">4</li>
  <li class="flex-item">5</li>
</ul>

<ul class="flex-container longhand">
  <li class="flex-item">1</li>
  <li class="flex-item">2</li>
  <li class="flex-item">3</li>
  <li class="flex-item">4</li>
  <li class="flex-item">5</li>
</ul>

CSS

.flex-container {
  padding: 0;
  margin: 0;
  list-style: none;
  display: flex;
}

.longhand {
  flex-flow: wrap row;
}

.flex-item {
  color: black;
  border: 1px solid black;
  width: 50px;
  height: 50px;
  font-size: 1.3em;
  text-align: center;
  padding: 10px;
}

把它们放进另一个容器里,然后旋转它……? - CBroe
我尝试应用CSS *transform: rotate(90deg)*,但没有成功。 - Billy Logan
@CBroe 好主意,让我试试。 - Billy Logan
3个回答

3

.flex-container用额外的div包裹起来,然后对其进行一些变换。

.flex-container {
  padding: 0;
  margin: 0;
  list-style: none;
  display: flex;
}

.longhand {
  flex-flow: wrap row;
}

.flex-item {
  color: black;
  border: 1px solid black;
  width: 50px;
  height: 50px;
  font-size: 1.3em;
  text-align: center;
  padding: 10px;
}

.container {
  transform: translateY(-100%) rotate(90deg);
  transform-origin: left bottom;
}
<div class="container">
  <ul class="flex-container longhand">
    <li class="flex-item">1</li>
    <li class="flex-item">2</li>
    <li class="flex-item">3</li>
    <li class="flex-item">4</li>
    <li class="flex-item">5</li>
  </ul>

  <ul class="flex-container longhand">
    <li class="flex-item">1</li>
    <li class="flex-item">2</li>
    <li class="flex-item">3</li>
    <li class="flex-item">4</li>
    <li class="flex-item">5</li>
  </ul>

</div>


2

将第二个 flex-container 设置为列,使用如下的 nth-child选择器

.flex-container {
  padding: 0;
  margin: 0;
  list-style: none;
  display: flex;
}
.flex-container:nth-child(2){
  flex-direction:column;
}
.longhand {
  flex-flow: wrap row;
}

.flex-item {
  color: black;
  border: 1px solid black;
  width: 50px;
  height: 50px;
  font-size: 1.3em;
  text-align: center;
  padding: 10px;
}

.flex-container:nth-child(2) > .flex-item{
  transform:rotate(90deg);
}
<ul class="flex-container longhand">
  <li class="flex-item">1</li>
  <li class="flex-item">2</li>
  <li class="flex-item">3</li>
  <li class="flex-item">4</li>
  <li class="flex-item">5</li>
</ul>

<ul class="flex-container longhand">
  <li class="flex-item">1</li>
  <li class="flex-item">2</li>
  <li class="flex-item">3</li>
  <li class="flex-item">4</li>
  <li class="flex-item">5</li>
</ul>


2

HTML

<ul class="flex-container longhand">
  <li class="flex-item">1</li>
  <li class="flex-item">2</li>
  <li class="flex-item">3</li>
  <li class="flex-item">4</li>
  <li class="flex-item">5</li>
</ul>

<ul class="flex-container longhand">
  <li class="flex-item">1</li>
  <li class="flex-item">2</li>
  <li class="flex-item">3</li>
  <li class="flex-item">4</li>
  <li class="flex-item">5</li>
</ul>

</div>

CSS

.parent
{
  display: flex;
}
.flex-container {
  padding: 0;
  margin: 0;
  list-style: none;
  display: flex;
}

.longhand {

  flex-flow: column;
}

.flex-item {
  color: black;
  border: 1px solid black;
  width: 50px;
  height: 50px;
  font-size: 1.3em;
  text-align: center;
  padding: 10px;
  transform: rotate(90deg)
}

我创建了一个父容器,以便将两个 flex 容器放在一起。然后我单独旋转了每个 flex 项目。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接