如何输入[type = text]来填充剩余的水平空间?

Mat*_*tko 5 html css

有没有人知道怎么做?我创建了这个小提琴http://jsfiddle.net/matusko/2pctr9ok/3/,我想做的就是输入的行为与上面的div相同.

CSS:

.left {
    float:left;
    width:180px;
    background-color:#ff0000;
}
.right {
    width: 100%;
    background-color:#00FF00;
    display: block;
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<div>
    <div class="left">
        left
    </div>
    <div class="right">
        right
    </div>
</div>
<br/>
<div>
    <div class="left">
        left
    </div>
    <input type="text" placeholder="right" class="right"/>
</div>
Run Code Online (Sandbox Code Playgroud)

我不明白为什么输入不像div那样,即使当专业检查员说它的显示是阻塞的.

Dan*_*den 9

您可以在CSS中使用calc来动态计算宽度.

以下示例:

.left {
  float: left;
  width: 180px;
  background-color: #ff0000;
}
.right {
  width: calc(100% - 180px);
  background-color: #00FF00;
  display: inline-block;
}
input[type="text"] {
  box-sizing: border-box;
  width: 100%;
}
Run Code Online (Sandbox Code Playgroud)
<div>
  <div class="left">left</div>
  <div class="right">right</div>
</div>
<br/>
<div>
  <div class="left">left</div>
  <div class="right">
    <input type="text" placeholder="right" />
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)