2017-06-24 5 views
1

私は要素をフォーカスする方法が2つしかないと考えていました。JavaScriptを使用する場合、またはcontenteditable属性を持つdivの場合です。しかし今回は何か違うことを試しました。親を使ってdiv内にinput[type="text"]contenteditableなし)を実行しようとしました。なぜ子要素にフォーカスを当てることができないのですか?

私は子要素がフォーカスされたときに、親があまりにも集中していることを知っている - 私は、次の例を持っている場合、私は意味:

<form action="/" method="get"> 
    <input type="text" placeholder="Hi I'm Text!" /> 
</form> 

私はテキストボックスに焦点を当てると、フォームがあまりにも集中します。私はすでに私自身の問題を解決し

form:focus > input[type="text"] { 
    /* The same CSS goes here */ 
} 

が、それはこのように動作することはできませんなぜ私が疑問に思う:

form input[type="text"]:focus { 
    /* CSS goes here */ 
} 

しかしが、私はこのような何かをしないことができます。私は、次の操作を行うことができます。私が言ったように(私が間違っていると私を修正する気がします) - 私が入力に焦点を当てると、私は自動的に親要素にも焦点を当てています(そして、それ自体の親要素などです)親に:focusを使用してから、その子供に影響を与えますか?

+0

可能な複製(https://stackoverflow.com/questions/1599660/which-html-elements-can-receive-focus) – BSMP

答えて

1

form要素にフォーカスすることはできません。必要に応じて、<form tabindex="0">などのtabindex属性を追加できます。

+0

に私は、私ができないことを知っている...私はなぜそれが不可能であるか尋ねた。 – natanelg97

+0

いくつかの要素だけが焦点を合わせることができる、あなたが使用するブラウザに依存します。 [この回答](https://stackoverflow.com/a/1600194/63409650)で説明しています。 –

+1

申し訳ありません。どうもありがとうございました! (תודהרבה!) – natanelg97

1

フォームはコントロールのコンテナなので、ユーザーとの直接的なやり取りは期待されません。

W3Cによれば、ユーザーはコントロールを使用してフォームとやりとりする必要があります。

リファレンス:[?HTML要素がフォーカスを受け取ることができる]の https://www.w3.org/TR/html401/interact/forms.html#form-controls

関連する問題