3 列流体 flexbox 和 rtl
3 columns fluid flexbox and rtl
我有 3 个流体柱,在 ltr 方向上,它们从左到右移动,这是我想要的,但在 rtl 方向上,它们颠倒了我想要防止的顺序。有没有办法在不指定方向的情况下防止顺序反转:容器元素上的 ltr? (因为那时容器子级继承了我不想要的这种行为)
#container {
display: flex; /* displays flex-items (children) inline */
direction:rtl;/* just for presentation, this would be on html element */
}
#leftcol {
border: 1px solid #0f0;
}
#centercol {
flex: 1; /* takes the remaining horizontal space */
border: 1px solid #000;
}
#rightcol {
border: 1px solid #0f0;
}
.box {
width: 50px;
height: 20px;
background: red;
float: left;
}
<div id="container">
<div id="leftcol">
<div class="box">a</div>
<div class="box">b</div>
<div class="box">c</div>
</div>
<div id="centercol">
center
</div>
<div id="rightcol">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
</div>
</div>
您可以将 flex-direction: row-reverse
而不是 direction: ltr
放在容器元素上。
#container {
display: flex; /* displays flex-items (children) inline */
direction:rtl;/* just for presentation, this would be on html element */
flex-direction: row-reverse;
}
#leftcol {
border: 1px solid #0f0;
}
#centercol {
flex: 1; /* takes the remaining horizontal space */
border: 1px solid #000;
}
#rightcol {
border: 1px solid #0f0;
}
.box {
width: 50px;
height: 20px;
background: red;
float: left;
}
<div id="container">
<div id="leftcol">
<div class="box">a</div>
<div class="box">b</div>
<div class="box">c</div>
</div>
<div id="centercol">
center
</div>
<div id="rightcol">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
</div>
</div>
I have 3 fluid columns, in direction ltr, they go left to right which
I want, but on direction rtl, they reverse order which I would like to
prevent.
- 您必须在
#container
中使用 flex-direction: row-reverse
Is there a way to prevent order reverse without specifying direction:
ltr on container element? (because then container children inherit
this behavior which I dont want)
- 您必须在
#container>div
中使用 flex-direction: row-reverse
(#container
的直接子代)
html {
direction: rtl;
}
#container {
display: flex;
flex-direction: row-reverse
}
#leftcol {
border: 1px solid #0f0;
}
#centercol {
flex: 1;
border: 1px solid #000;
}
#rightcol {
border: 1px solid #0f0;
}
#container>div {
/* to avoid float:left in .box */
display: flex;
flex-direction: row-reverse
}
.box {
width: 50px;
height: 20px;
background: red;
}
<div id="container">
<div id="leftcol">
<div class="box">a</div>
<div class="box">b</div>
<div class="box">c</div>
</div>
<div id="centercol">
center
</div>
<div id="rightcol">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
</div>
</div>
我有 3 个流体柱,在 ltr 方向上,它们从左到右移动,这是我想要的,但在 rtl 方向上,它们颠倒了我想要防止的顺序。有没有办法在不指定方向的情况下防止顺序反转:容器元素上的 ltr? (因为那时容器子级继承了我不想要的这种行为)
#container {
display: flex; /* displays flex-items (children) inline */
direction:rtl;/* just for presentation, this would be on html element */
}
#leftcol {
border: 1px solid #0f0;
}
#centercol {
flex: 1; /* takes the remaining horizontal space */
border: 1px solid #000;
}
#rightcol {
border: 1px solid #0f0;
}
.box {
width: 50px;
height: 20px;
background: red;
float: left;
}
<div id="container">
<div id="leftcol">
<div class="box">a</div>
<div class="box">b</div>
<div class="box">c</div>
</div>
<div id="centercol">
center
</div>
<div id="rightcol">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
</div>
</div>
您可以将 flex-direction: row-reverse
而不是 direction: ltr
放在容器元素上。
#container {
display: flex; /* displays flex-items (children) inline */
direction:rtl;/* just for presentation, this would be on html element */
flex-direction: row-reverse;
}
#leftcol {
border: 1px solid #0f0;
}
#centercol {
flex: 1; /* takes the remaining horizontal space */
border: 1px solid #000;
}
#rightcol {
border: 1px solid #0f0;
}
.box {
width: 50px;
height: 20px;
background: red;
float: left;
}
<div id="container">
<div id="leftcol">
<div class="box">a</div>
<div class="box">b</div>
<div class="box">c</div>
</div>
<div id="centercol">
center
</div>
<div id="rightcol">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
</div>
</div>
I have 3 fluid columns, in direction ltr, they go left to right which I want, but on direction rtl, they reverse order which I would like to prevent.
- 您必须在
#container
中使用
flex-direction: row-reverse
Is there a way to prevent order reverse without specifying direction: ltr on container element? (because then container children inherit this behavior which I dont want)
- 您必须在
#container>div
中使用flex-direction: row-reverse
(#container
的直接子代)
html {
direction: rtl;
}
#container {
display: flex;
flex-direction: row-reverse
}
#leftcol {
border: 1px solid #0f0;
}
#centercol {
flex: 1;
border: 1px solid #000;
}
#rightcol {
border: 1px solid #0f0;
}
#container>div {
/* to avoid float:left in .box */
display: flex;
flex-direction: row-reverse
}
.box {
width: 50px;
height: 20px;
background: red;
}
<div id="container">
<div id="leftcol">
<div class="box">a</div>
<div class="box">b</div>
<div class="box">c</div>
</div>
<div id="centercol">
center
</div>
<div id="rightcol">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
</div>
</div>