简体   繁体   中英

HTML input[type=text] take up remainder of space on the line

I've tried and tried to get this to successfully work without using tables in IE7+ to no avail.

The working but not so desireable code:

<table>
  <tr>
    <td><label for="address">Address</label></td>
    <td><input type="text" name="address" value="" id="address" style="width: 100%;"/></td>
    <td><a href="#">Find</a></td>
  </tr>
</table>

What this will do is have: Address [ INPUT TEXT ] Find They'll be all on one line and the input field take up 100% of available space without pushing the label or a to the next line.

I cannot for the life of me get this to work without tables.

Input, comments, links appreciated!

See this this jsfiddle , both alternatives on the same screen.

See: http://jsfiddle.net/thirtydot/PLsuG/

This is a good solution that work in IE7 + greater and all modern browsers.

It's very similar to @CyberDude's second solution.

HTML:

<div class="formLine">
    <label for="address">Address</label>
    <a href="#">Find</a>
    <span><input type="text" name="address" id="address" value="" /></span>
</div>

CSS:

.formLine {
    overflow: hidden;
    background: #ccc
}
.formLine input {
    width: 100%
}
.formLine label {
    float: left
}
.formLine span {
    display: block;
    overflow: hidden;
    padding: 0 5px
}
.formLine a {
    float: right
}
.formLine input, .formLine a { 
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM