2012-03-13 34 views
0

我有一個div <div id="ab">包含一個文本字段<input type="text" class="a" />和一個提交按鈕<input type="submit" value="Test" class="b" />。 div的高度固定,長度爲100%。文本字段具有特定的高度。提交按鈕只有特定的高度。我希望文本字段可以拉伸整個div(寬度),爲提交按鈕留出空間來停靠。以百分比表示的設置寬度不起作用;拉伸文本字段按鈕,以填補父DIV

造型;

#ab{ 
    background-color: #CCCCCC; 
    width: 100%; 
    height: 36px; 
    border: solid 1px #999999; 
} 
#ab .a{ 
    display: block; 
    float: left; 
    border: none; 
    height: 34px; 
} 
#ab .b{ 
    display: block; 
    float: left; 
    border: none; 
    width: 100px; 
    height: 36px; 
} 

HTML;

<div id="ab"> 
    <input type="text" class="a" /> 
    <input type="submit" value="Test" class="b" /> 
</div> 

我得到這個;

enter image description here

,我想這一點;

enter image description here

Here是小提琴。

我怎樣才能做到這一點使用CSS?

+0

設定百分比值似乎爲我工作,[這裏的FID DLE(http://jsfiddle.net/eliranmal/TUHAa/)。 – 2012-03-13 21:16:01

回答

0

實現這個最簡潔的方法是給#ab固定寬度。那麼這是純粹的數學。

或者你這樣做:

#ab .a{ 
    width:100%; /* << */ 
    display: block; 
    float: left; 
    border: none; 
    height: 34px; 
} 
#ab .b{ 
    margin: 0 0 0 -100px; /* << */ 
    display: block; 
    float: left; 
    border: none; 
    width: 100px; 
    height: 36px; 
} 

另外也適用於box-sizing: border-box;.a,如果你想它的寬度,包括可選的墊襯。

.a { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; } 
+1

這是不是一個真正的解決方案,因爲按鈕現已覆蓋文本 – 2012-03-13 21:27:03

0

如果你必須有100px的按鈕,而不是變量(百分比),那麼沒有辦法用純CSS做到這一點。你不能說寬度:(100%-100px),所以我建議用jQuery設置它:

這裏是小提琴:http://jsfiddle.net/jesseclark/rXKqv/

2

您可以實現與表

HTML

<div id="ab"> 
    <table> 
    <tr> 
     <td><input type="text" class="a" /></td> 
     <td class="right"><input type="submit" value="Test" class="b" /></td> 
    </tr>   
    </table> 
</div> 

CSS

#ab{ 
background-color: #CCCCCC; 
height: 36px; 
border: solid 1px #999999; 
width: 100%; 
} 
table{ 
    width:100%;  
} 
.right{ 
    width:100px; 
} 
#ab .a{ 
    display: block; 
    border: none; 
    height: 34px; 
    width:100%; 
} 
#ab .b{ 
    display: block; 
    border: none; 
    width: 100%; 
    height: 36px; 
} 
+0

這是不好的做法的右側部分,因爲表不應該被用於佈局(!) – 2012-03-14 08:17:04

+0

但是讓我們面對現實吧。我們正在談論表格領域。無論如何,沒有更好的方式來佈置表單域的外觀。對於總體佈局,我在你身邊 – 2012-03-14 12:51:02

+0

藉口,但這是絕對垃圾。佈局表單我使用包含浮動控件的列表。如果我在網格工作表參考上做到這一點,我可以獲得完美的像素完美或流體佈局形式。 – 2012-03-14 14:06:27