まあ、技術的には取得することはできず:before
、:after
疑似要素は要素に作用しinput
ます
W3Cから:
12.1:beforeおよび:after疑似要素
作成者は、:beforeおよび:after疑似要素を使用して、生成されたコンテンツのスタイルと場所を指定します。名前が示すように、:beforeおよび:after疑似要素は、要素のドキュメントツリーコンテンツの前後のコンテンツの場所を指定します。'content'プロパティは、これらの疑似要素と組み合わせて、挿入されるものを指定します。
それで、タグの形で送信ボタンを使用するプロジェクトがinput
あり、何らかの理由で他の開発者が通常の入力送信ボタンの代わりにタグを使用するように制限したので、ボタンをセット<button>
内にラップするという別の解決策を思いつきました次に、疑似を使用span
しposition: relative;
てアイコンを絶対に配置します。:after
注:デモフィドルはFontAwesome 3.2.1のコンテンツコードを使用するため、content
それに応じてプロパティの値を変更する必要がある場合があります。
HTML
<span><input type="submit" value="Send" class="btn btn-default" /></span>
CSS
input[type="submit"] {
margin: 10px;
padding-right: 30px;
}
span {
position: relative;
}
span:after {
font-family: FontAwesome;
content: "\f004"; /* Value may need to be changed in newer version of font awesome*/
font-size: 13px;
position: absolute;
right: 20px;
top: 1px;
pointer-events: none;
}
Demo
ここですべてが自明です。つまりpointer-events: none;
、1つのプロパティについて、:after
疑似生成コンテンツにカーソルを合わせるとボタンがクリックされないため、の値を使用するnone
と、クリックアクションがそのコンテンツを通過するように強制されます。 。
Mozilla Developer Networkから:
要素がマウスイベントのターゲットではないことを示すことに加えて、値noneは、マウスイベントに要素を「通過」し、代わりにその要素の「下」にあるものをターゲットにするように指示します。
ハートのフォント/アイコンDemoにカーソルを合わせて、使用しない場合に何が起こるかを確認しますpointer-events: none;