2011-08-19 6 views
10
나는이 양식을 가지고

...이 CSS와유체 입력 요소

<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> 

...

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; 
} 

유체 필드 폭의 있도록 input 요소는 항상 fieldset 요소의 폭에 상대적입니다. 즉, 레이블 (125px)과 입력 요소의 너비는 항상 fieldset 요소의 너비의 100 %이어야합니다. div를 추가하지 않고도이 작업을 수행 할 수있는 쉬운 방법이 있습니까?

+0

당신이 입력을 의미합니까 요소는 나머지 너비 (즉, 필드 집합 너비와 레이블 너비의 차이)를 사용해야합니다. 그 입력은 필드 집합의 너비의 100 %이어야합니까? – Spycho

+0

유사 [이 질문에] (http://stackoverflow.com/questions/1030793/input-with-displayblock-is-not-a-block-why-not) – Spycho

+0

네, 그건 제가 의미했던 것입니다 - 사과한다면 확실하지 않았습니다 ... – rkhff

답변

25

참조 : 당신은 주위에 무해한 작은 span를 추가하여이 작업을 수행 할 수 있습니다 http://jsfiddle.net/thirtydot/pk3GP/

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; 
}