2011-08-19 77 views
10

我得到這個形式...流體輸入元素

<form method="post" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>"> 
    <fieldset> 
     <legend>Who are you?</legend> 
     <label for="first-name">First name</label><input type="text" name="first_name" required /><br /> 
     <label for="last-name">Surname</label><input type="text" name="last_name" required /><br /> 
     <label for="email">E-mail</label><input type="email" name="email" required /><br /> 
     <input type="button" name="submit1" id="submit1" value="Next" /> 
     <input type="button" name="clear" id="clear" value="Clear" /> 
    </fieldset> 
</form> 

有了這個CSS ...

form { 
    margin: 24px 0 0 0; 
} 

form legend { 
    font-size: 1.125em; 
    font-weight: bold; 
} 

form fieldset { 
    margin: 0 0 32px 0; 
    padding: 8px; 
    border: 1px solid #ccc; 
} 

form label { 
    float: left; 
    width: 125px; 
} 

form label, form input { 
    margin: 5px 0; 
} 

我正在尋找一個簡單的方法來使輸入字段液,使寬度輸入元素總是相對於fieldset元素的寬度。換句話說,標籤(125px)和輸入元素的寬度應始終爲fieldset元素寬度的100%。有沒有簡單的方法來做到這一點(不添加div)?

+0

你的意思是輸入元素應該使用剩餘寬度(即字段集寬度和標籤寬度之間的差異),而不是比輸入應該是fieldset寬度的100%? – Spycho

+0

類似於[這個問題](http://stackoverflow.com/questions/1030793/input-with-displayblock-is-not-a-block-why-not) – Spycho

+0

是的,這就是我的意思 - 如果不清楚... – rkhff

回答

25

參見:http://jsfiddle.net/thirtydot/pk3GP/

您可以通過添加一個無傷大雅的小span各地做到這一點每個input

<span><input type="text" name="first_name" required /></span> 

而這個新的CSS:

form input { 
    width: 100%; 
} 
form span { 
    display: block; 
    overflow: hidden; 
    padding: 0 5px 0 0; 
}