입력 위에 레이블이있는 스타일링 양식
다음 양식 스타일을 생성하고 싶습니다.
이름 이메일 [.................] [.................] 제목 [.................] 메시지 [.........................................] [.........................................] [.........................................] [.........................................]
내가 가진 HTML 코드는 다음과 같습니다.
<form name="message" method="post">
<section>
<label for="name">Name</label>
<input id="name" type="text" value="" name="name">
<label for="email">Email</label>
<input id="email" type="text" value="" name="email">
</section>
<section>
<label for="subject">Subject</label>
<input id="subject" type="text" value="" name="subject">
<label for="message">Message</label>
<input id="message" type="text" value="" name="message">
</section>
</form>
현재 다음을 생산하고 있습니다.
이름 [...................] 이메일 [...................] 제목 [...................] 메시지 [.........................................] [.........................................] [.........................................] [.........................................]
이를 수행하는 가장 좋은 방법은 무엇입니까? 나는 내 수레를 계속 엉망으로 만든다!
input
및 label
요소를 모두 display: block
만든 다음 이름 레이블 및 입력, 이메일 레이블 및 입력을 분할 div's
하고 서로 옆에 플로팅합니다.
input, label {
display:block;
}
<form name="message" method="post">
<section>
<div style="float:left;margin-right:20px;">
<label for="name">Name</label>
<input id="name" type="text" value="" name="name">
</div>
<div style="float:left;">
<label for="email">Email</label>
<input id="email" type="text" value="" name="email">
</div>
<br style="clear:both;" />
</section>
<section>
<label for="subject">Subject</label>
<input id="subject" type="text" value="" name="subject">
<label for="message">Message</label>
<input id="message" type="text" value="" name="message">
</section>
</form>
다음과 같이 시도해 볼 수 있습니다.
<form name="message" method="post">
<section>
<div>
<label for="name">Name</label>
<input id="name" type="text" value="" name="name">
</div>
<div>
<label for="email">Email</label>
<input id="email" type="text" value="" name="email">
</div>
</section>
<section>
<div>
<label for="subject">Subject</label>
<input id="subject" type="text" value="" name="subject">
</div>
<div class="full">
<label for="message">Message</label>
<input id="message" type="text" value="" name="message">
</div>
</section>
</form>
그런 다음 css
form { width: 400px; }
form section div { float: left; }
form section div.full { clear: both; }
form section div label { display: block; }
I'd prefer not to use an HTML5 only element such as <section>
. Also grouping the input fields might painful if you try to generate the form with code. It's always better to produce similar markup for each one and only change the class names. Therefore I would recommend a solution that looks like this :
CSS
label, input {
display: block;
}
ul.form {
width : 500px;
padding: 0px;
margin : 0px;
list-style-type: none;
}
ul.form li {
width : 500px;
}
ul.form li input {
width : 200px;
}
ul.form li textarea {
width : 450px;
height: 150px;
}
ul.form li.twoColumnPart {
float : left;
width : 250px;
}
HTML
<form name="message" method="post">
<ul class="form">
<li class="twoColumnPart">
<label for="name">Name</label>
<input id="name" type="text" value="" name="name">
</li>
<li class="twoColumnPart">
<label for="email">Email</label>
<input id="email" type="text" value="" name="email">
</li>
<li>
<label for="subject">Subject</label>
<input id="subject" type="text" value="" name="subject">
</li>
<li>
<label for="message">Message</label>
<textarea id="message" type="text" name="message"></textarea>
</li>
</ul>
</form>
I know this is an old one with an accepted answer, and that answer works great.. IF you are not styling the background and floating the final inputs left. If you are, then the form background will not include the floated input fields.
To avoid this make the divs with the smaller input fields inline-block rather than float left.
This:
<div style="display:inline-block;margin-right:20px;">
<label for="name">Name</label>
<input id="name" type="text" value="" name="name">
</div>
Rather than:
<div style="float:left;margin-right:20px;">
<label for="name">Name</label>
<input id="name" type="text" value="" name="name">
</div>
10 minutes ago i had the same problem of place label above input
then i got a small ugly resolution
<form>
<h4><label for="male">Male</label></h4>
<input type="radio" name="sex" id="male" value="male">
</form>
The disadvantage is that there is a big blank space between the label and input, of course you can adjust the css
Demo at: http://jsfiddle.net/bqkawjs5/
참고URL : https://stackoverflow.com/questions/6046110/styling-form-with-label-above-inputs
'Program Tip' 카테고리의 다른 글
GCC에서 "정의되었지만 사용되지 않음"경고를 숨기려면 어떻게해야합니까? (0) | 2020.12.02 |
---|---|
열린 'fancybox'내에서 함수에서 멋진 상자를 닫습니다. (0) | 2020.12.02 |
SQLAlchemy를 사용하여 SQL보기를 만드는 방법은 무엇입니까? (0) | 2020.12.01 |
HTML 및 CSS를 사용한 테이블 스크롤 (0) | 2020.12.01 |
QtCreator : 유효한 키트가 없습니다. (0) | 2020.12.01 |