2016-06-24 5 views
0

私はデフォルトのチェックボックスの代わりにfont-awesomeを使用していますが、それらはラベルと垂直に整列していません。チェックボックス自体を動かさずに、ラベルを垂直に並べたり、ラベルを配置するにはどうしたらいいですか?私はラベルと垂直方向にその中心軸に沿って整列する]チェックボックスを希望:http://codepen.io/3chordme/pen/pbRwgQフォントのすばらしい入力チェックボックスをラベルに垂直に配置するにはどうすればよいですか?

EDITで

HTML

<div class="row"> 
    <input type="checkbox" class="checkbox-green" id="authorized"> 
    <label for="authorized">I am authorized to work in the United States.</label> 
</div> 
<div class="row margin-top-12"> 
    <input type="checkbox" class="checkbox-green" id="drugs"> 
    <label for="drugs">I am not currently using illegal drugs.</label> 
</div> 
<div class="row margin-top-12"> 
    <input type="checkbox" class="checkbox-green" id="felony"> 
    <label for="felony">I have not been convicted of a felony.    </label> 
</div> 

CSS

@import url(//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css); 

.checkbox-green { display: none; } 

.checkbox-green + label:before { 
    font-family: FontAwesome; 
    font-size: 34px; 
    width: 50px; 
    color: $brand_green; 
    display: inline-block; 
    cursor: pointer; 
    content: "\f096"; 
} 
.checkbox-green:hover + label:before { color: $brand_green--dark; } 
.checkbox-green:checked + label:before { content: "\f046"; } 

Codepen。 {vertical-align:middle}スタイルをラベルに追加することはできません。ラベルの相対的な配置は、テキストとチェックボックスを移動します。チェックボックスやテキストのフォントサイズを変更することはできません。

+1

技術的にはそれだと。チェックボックスを大きくして、両方を一番下に揃えました。あなたはそれらを中心にしたいですか? – dlsso

+0

一つの方法は、 'checkbox:before 'と' label'の両方の同じ 'font-size'を使うことです。 –

+0

@dissoはい、私は、チェックボックスのアイコンとラベルのテキストを垂直軸に沿って並べるように、垂直にセンタリングしたいと思います。 – devigner

答えて

3

vertical-align: middle;に.checkbox緑+ラベルを追加します。前に、それらが縦に並んでいる

1

vertical-align: middle;をラベル要素に追加します。 それは、アイテムを互いの中央に置くことを指示します。

+1

それは動作しません。 「チェックボックス」はラベルの擬似要素です。 – dlsso

+0

私はそれを試してみる前にそれをテストしました、それは仕事です。 – Ann

1

あなたがセンターに配置したいと思うなら、あなたはこのようなことをする必要があります。注:私はCSSウィザードではないので、理想的なソリューションではありません。

@import url(//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css); 

.checkbox-green { display: none; } 

.checkbox-green + label:before { 
    font-family: FontAwesome; 
    font-size: 34px; 
    width: 50px; 
    color: $brand_green; 
    display: inline-block; 
    cursor: pointer; 
    content: "\f096"; 
    position: relative; 
    top: 8px; 

} 
.checkbox-green:hover + label:before { color: $brand_green--dark; } 
.checkbox-green:checked + label:before { content: "\f046"; } 
+0

これはJSではなくCSSであるようですが、実際には機能します!私は実際に、行の高さの変更の有無にかかわらず、望みの効果を得ています。「折りたたむことなし」とはどういう意味ですか? – devigner

+1

私のラベルに間違いがあります。修正しました。あなたのフィドルを更新したように見えるので、私は確かに言うことはできませんが、私はラインポジションが必要と思う 'position:absolute'で遊んでいたと思います。間違いなくあなたが必要としないコードをすべて削除してください! – dlsso

1

CSSちょうどlabel::before擬似セレクタに以下のプロパティを追加、それが垂直方向に整列します。

.checkbox-green + label::before{ 
    position:relative; 
    top:12px; 
} 
関連する問題