13

私はこのフォームを手に入れました...

<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で…</p>

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

入力要素の幅が常にフィールドセット要素の幅に比例するように、入力フィールドを流動的にする簡単な方法を探しています。つまり、ラベル(125px)と入力要素の幅は、常にフィールドセット要素の幅の100%である必要があります。(divを追加せずに)これを行う簡単な方法はありますか?

4

1 に答える 1

31

参照: 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;
}

、を使用してこれを行うこともできますdisplay: table。これは通常、より適切なアプローチです。入力要素をそのラベルと同じ行に配置するにはどうすればよいですか。

于 2011-08-19T10:22:21.773 に答える