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

防止flexbox的子项溢出父项?

  •  0
  • panthro  · 技术社区  · 5 年前

    JSFiddle

    • 我不希望溢出设置为隐藏。
    • 我希望两个孩子都能融入父母的身体。
    • 没有包装到下一行。

    HTML:

    <div>
      <form>
        <input type="text">
        <input type="submit">
      </form>
    </div>
    

    CSS:

    div {
      background: gold;
      width: 120px;
    }
    
    form {
      display: flex;
    }
    
    input[type='text'] {
        ??
    }
    
    input[type='submit'] {
        ??
    }
    
    1 回复  |  直到 5 年前
        1
  •  3
  •   Adam Jenkins    5 年前

    CSS输入很难调整,因为它们是被替换的元素。您必须覆盖操作系统中的某些默认样式:

     input {
        min-width:0;
        flex: 1 1 0;
     }
    

    0 并且彼此平等地成长)。你可能不想那样。

    如果希望其中一个按比例比另一个大,可以将其更改为:

    input[type='text'] {
        flex: 2 1 0;
    }
    
    input[type='submit'] {
        flex: 1 1 0;
    }
    

    这使得文本输入以两倍于提交按钮的速度增长。i、 e.-文本元素占2/3,提交按钮占1/3。