代码之家  ›  专栏  ›  技术社区  ›  Toniq

3柱流体flexbox和rtl

  •  0
  • Toniq  · 技术社区  · 7 年前

    #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>
    2 回复  |  直到 7 年前
        1
  •  3
  •   Raphael Aleixo    7 年前

    你可以把 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>
        2
  •  2
  •   dippas    7 年前

    我有3个流体柱,在ltr方向,它们从左到右,哪个 防止。

    • 你必须使用 flex-direction: row-reverse 在里面 #container

    容器元素上的ltr(因为这样子容器继承 这种行为我不想要)

    • 你必须使用 弯曲方向:行反转 在里面 #container>div (直系子女) #容器

    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>