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

如何设置flex box容器的innerText的flex属性?

  •  0
  • Fredrik_Borgstrom  · 技术社区  · 6 年前

    如果您的flex box容器本身包含文本(innerText),则该文本显然成为flex布局的一部分。但是,如何使用flex basis和flex grow等设置控制它呢? 有办法控制它吗?

    HTML:

    <div class="a">
       Sample text
       <div class="b"></div>
       <div class="c"></div>
    </div>
    

    CSS:

    .a {
      display: flex;
    }
    .b {
      flex: 0 0 200px;
    }
    .c {
      flex: 0 0 100px;
    }
    

    我想控制“示例文本”的灵活属性。

    是的,我知道只要把文本放在它自己的节点上就可以解决这个问题,但是我要处理的是一个+10万个项目的列表,所以我要尽量减少节点的数量。

    1 回复  |  直到 6 年前
        1
  •  3
  •   Temani Afif    6 年前

    控制文本的想法是考虑两个伪元素,它们都环绕在文本周围,您可以在其中应用flex属性并实现您想要的:

    .a {
      display: flex;
    }
    .a:before,
    .a:after{
      content:"";
      background:pink;
      flex: 1 0 0%;
      
    }
    
    .b {
      flex: 1 0 200px;
      background:blue;
      order:2; /*we place them at the end*/
    }
    
    .c {
      flex: 0 1 100px;
      background:red; 
      order:2; /*we place them at the end*/
    }
    <div class="a">
      Sample text
      <div class="b"></div>
      <div class="c"></div>
    </div>

    你只需要 想象 应用于伪元素以获得所需结果的正确值。