2016-04-04 11 views
0

入力の上にラベルを貼りたい。しかし、コード内で動かすと、CSS Focusスタイルの動作が停止します。フォーカスすると、ラベルのニーズが大きくなります。これを修正するには? jQueryのソリューションは、フォーカスを取得するためにラベルと入力を取得する

form { 
 
    margin-top: 25px; 
 
} 
 

 
input { 
 
    
 
    display:block; 
 
} 
 

 
form input:focus + label { 
 
    font-size: 1.5em; 
 
}
<form> 
 
    
 
    <!-- DOESN'T WORK 
 
===================== 
 
--> 
 
    <label for="firstname">First name:</label> 
 
    <input id="firstname" name="firstname" type="text"> 
 

 
    <br> 
 
    
 
    <!-- WORKS 
 
===================== 
 
--> 
 
    <input id="lasttname" name="firstname" type="text"> 
 
    <label for="lasttname">Last name:</label> 
 

 

 
</form>

答えて

2

余分divにラベルと入力を包むようにしてください、とflex-boxを使用します。

form { 
 
    margin-top: 25px; 
 
} 
 
form input:focus + label { 
 
    font-size: 1.5em; 
 
} 
 

 
.form-row { 
 
    display: flex; 
 
    flex-direction: column; 
 
    
 
    margin-bottom: 8px; 
 
} 
 

 
.form-row label { 
 
    order: 1; 
 
} 
 

 
.form-row input { 
 
    order: 2; 
 
    width: 141px; 
 
}
<form> 
 
    
 
    <!-- DOESN'T WORK 
 
===================== 
 
--> 
 
    <div class='form-row'> 
 
    <input id="firstname" name="firstname" type="text"> 
 
    <label for="firstname">First name:</label> 
 
    </div> 
 

 
    <!-- WORKS 
 
===================== 
 
--> 
 
    <input id="lasttname" name="firstname" type="text"> 
 
    <label for="lasttname">Last name:</label> 
 

 

 
</form>

+0

作品が、今どのようにありがとうございましたフィールドの上にラベルを付けますか?これは私が理解できない.....ラベルが下にあるので私はそれを得るためにブロックを使用することができません.... –

+0

@AlexeyTseitlinああ、私はあなたが望むものを最初に得ていない。私は自分の答えを編集しました。今では 'flexbox 'で書かれていますが、うまくいくはずです。 – t1m0n

+0

偉大な答え!フレキシブルでなくてもいいですか? –

2

...すべてのものを試してみました。

$(function() { 
 
    $('form input[type="text"]').focus(function() { 
 
    $(this).prev('label').css("font-size", "1.5em"); 
 
    }); 
 
    $('form input[type="text"]').focusout(function() { 
 
    $(this).prev('label').css("font-size", "1em"); 
 
    }); 
 
});
form { 
 
    margin-top: 25px; 
 
} 
 
form input:focus + label { 
 
    font-size: 1.5em; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form> 
 

 
    <!-- DOESN'T WORK 
 
===================== 
 
--> 
 
    <label for="firstname">First name:</label> 
 
    <input id="firstname" name="firstname" type="text"> 
 

 
    <!-- WORKS 
 
===================== 
 
--> 
 
    <input id="lasttname" name="firstname" type="text"> 
 
    <label for="lasttname">Last name:</label> 
 

 

 
</form>

+0

は)たくさん –

関連する問題