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

flex上的div文本对齐

  •  1
  • anivas  · 技术社区  · 10 年前

    如何对齐div,使两个标签具有相同的宽度和右对齐,并且两个内容从同一位置开始。有人建议 float ,但我不喜欢浮动内容。有灵活的方法来做这件事吗。

    enter image description here

    <!DOCTYPE HTMML>
    <html>
    <body>
        <div>
            <div style="display: flex; flex-direction:row;">
                <div style="align: right; background: blue">
                    Long label:
                </div>
                <div style="text-align: left; background: green">
                    This is the content
                </div>
            </div>  
    
            <div style="display: flex; flex-direction:row;">
                <div style="align: right; background: blue">
                    label:
                </div>
                <div style="text-align: left; background: green">
                    This is the content
                </div>
            </div>  
        </div>
    </body>
    </html>
    
    2 回复  |  直到 10 年前
        1
  •  1
  •   Paulie_D    10 年前

    使用flexbox。。。 …除非你使用固定的宽度值(不管它们是什么),否则你不能……非兄弟姐妹之间没有宽度/高度相等。

    您需要给其中一个元素一个固定的宽度值,然后让另一个元素用 flex:1 .

    .blue {
      background: lightblue;
      /* width: 150px; */
      flex: 0 0 150px
    }
    .green {
      background: #bada55;
      flex: 1;
    }
    .parent {
      display: flex;
    }
    <div class="parent">
      <div class="blue">
        Long label:
      </div>
      <div class="green">
        This is the content
      </div>
    </div>
    
    <div class="parent">
      <div class="blue">
        label:
      </div>
      <div class="green">
        This is the content
      </div>
    </div>
        2
  •  0
  •   Stephen    10 年前

    为什么不简单地在内容和标签div中添加一个类呢?

    HTML语言

    <div>
    <div>
        <div class="label-div">Long label</div>
        <div class="content-div">Content</div>
    </div>
    <div>
        <div class="label-div">Label</div>
        <div class="content-div">Content</div>
    </div>
    </div>
    

    CSS公司

    .label-div {
       width: 70px;
       text-align: right;
    }
    
    .content-div {
       text-align: left;
    }
    

    这样,可以确保所有标签div的长度相等。