如何使输入文本字段占用所有可用宽度?

时间:2014-02-21 16:25:49

标签: html css width margin

我正在尝试将输入文本字段拉伸到可用宽度(减去边距)。这不起作用。为什么呢?

  <div style="background:yellow; padding:5px;">
    <input id="test-input" type="text" />
  </div>
  <style type="text/css">
    * { box-sizing: border-box; }
    #test-input {
        margin-left: 10px;
        margin-right: 10px;
        width: auto;
        display: block;
        border: 1px black solid;
    }
  </style>

1 个答案:

答案 0 :(得分:3)

您可以使用CSS3 calc()函数计算排除左/右边距的width,如下所示:

#test-input {
    margin-left: 10px;
    margin-right: 10px;
    width: calc(100% - 20px); /* Exclude left/right margins */
    display: block;
}

<强> WORKING DEMO

或者使用padding代替容器,而不是使用margin作为输入:

<div class="parent">
    <input id="test-input" type="text" />
</div>
.parent {
    padding: 5px 15px;
}

#test-input {
    width: 100%;
    display: block;
}

<强> WORKING DEMO