html 输入元素扩展到全角

html input element expand to full width

我有一个简单的问题,但我尝试过的解决方案不起作用。我的表单中有两列布局。此外,右栏被分成两栏。左边是固定宽度(标签),右边是输入。如果可能的话,我希望在同一行输入和标签并且输入字段填充可用的其余部分 space。 请参阅 fiddle 并让我知道我缺少什么。

<div style="float: left; width: 45%">
  <div id="keepTogether">
    <div id="label">
      Description
    </div>
    <div id="rightColumn">
      <input id="inputfield" />    
    </div>

  </div>
</div>

#keepTogether {
  height: 24px;
  margin-bottom: 8px;
  margin-top: 0px;
}

#Label {
  width: 100px;
  float: left;
  display: inline-block;
}

#inputfield {
  float: right;
  width: 100%;
}

#rightColumn {
  width: auto;
}

https://jsfiddle.net/workmonitored/4m0sj1fq/4/#&togetherjs=j3i2Q105hF

希望这对你有用。

#keepTogether {
        height: 24px;
        margin-bottom: 8px;
        margin-top: 0px;
    }

    #Label {
        width: 20%;
        float: left;
        display: inline-block;
    }

    #inputfield {
        float: right;
        width: 100%;
    }

    #rightColumn {
        width: 80% !important;
        width: auto;
        float: left;
    }

选项 1 使用 display flex

片段

#main{
 float: left;
 width:60% ;
   display:flex;
   border:solid;
}
#keepTogether {
  border:solid;
}

#label {
  display: inline;
  flex: 0 0 100px;
}

#inputfield {
      -webkit-box-flex:1;
      -webkit-flex:1;
          -ms-flex:1;
              flex:1;
  
}
<div id='main'>
    <div id="label">
      Description
    </div>
      <input id="inputfield" />    
</div>


选项 2 使用 table 标签

这是一个片段

table{
  width:60%;
}
td {
  padding:0px;
  margin:0px;
}
#inputfield{
  width:100%;
  margin:none;
  padding:0;

}
#label{
  width:50px;
}
<table>
<tr id='main'>
      <td id="label">
      Description:</td>
    <td id="rightColumn">
       <input id="inputfield" />   
    </td>
  </tr>
  </table>

我在您的代码中发现了一些错误。
- 您的第一个 div 没有必要保留。
- 您的 ID 选择不正确。应该是#label 你也应该遵循这个代码结构和 css 来解决这个问题。

#keepTogether {
  display: inline-block;
}

#label {
  float: left;
  padding-right: 10px;
}

#inputfield {
  width: 200px;
}
  <div id="keepTogether">
    <div id="label">
      Description
    </div>
    <input id="inputfield" />
  </div>