私はこのHTMLフォームを持っています:
<form method="post" action="#" class="cf">
<div class="left">
<label for="first-name">First Name</label>
<input type="text" name="first-name" placeholder="First Name" id="first-name" required />
<label for="last-name">Middle Name</label>
<input type="text" name="middle-name" placeholder="Middle Name" id="middle-name" />
<label for="last-name">Last Name</label>
<input type="text" name="last-name" placeholder="Last Name" id="last-name" required />
</div>
<div class="right">
<label for="details">Details</label>
<textarea name="details" placeholder="Details" id="details" required></textarea>
</div>
<input type="submit" name="submit" value="Submit Form" />
</form>
そして、これは私のCSSです:
/* Clearfix */
.cf:before,.cf:after { content: " "; display: table; }
.cf:after { clear: both; }
form > * {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.left {
background: rgba(255, 0, 0, .2);
}
.right {
background: rgba(0, 255, 0, .2);
}
form {
background: #ccc;
}
input[type="text"],
textarea {
width: 100%;
border: none;
}
input[type="text"] {
margin-bottom: 10px;
}
label {
display: inline-block;
margin-bottom: 5px;
}
@media only screen and (min-width: 600px) {
form {
background: rgba(0, 0, 255, .3);
}
.left {
float: left;
width: 50%;
}
.right {
float: right;
width: 50%;
}
input[type="submit"] {
clear: both;
}
}
フィドル
http://jsfiddle.net/gRRmh/
基本的には、3 つのテキスト入力フィールド、1 つのテキストエリア、1 つの送信ボタン (入力タイプの送信) です。ブレークポイントに到達すると、フォームは 2 列のレイアウトになります。それが機能している部分です。
機能していない部分は、テキストエリアの高さです。左側の 3 つの入力フィールドと同じ高さにしたいです。
に設定するとheight: 100%;
、次の 2 つの理由で機能しません。
- ラベルの高さを考慮する必要があります。確かに、パーセンテージで高さを指定し、その値をテキストエリアの高さから差し引くことができます (10% / 90%) ...
- ...しかし、これを機能させるには、1 つの親要素の高さを固定する必要があるため、フォームの高さを 200px にする必要があります。それに関する問題は、実際には左の列の高さを手動で一致させる必要があることです。これは実際には良い解決策ではありません。
したがって、私が実際に探しているのは、次のようなものです。手動でピクセルを微調整
する必要
はありません:
この問題を解決するには?