テキストを表示したいのですが、ユーザーがこのテキストをホバーすると、テキストの代わりに入力フォームが表示されます。ホバーを外すと、再びテキストに置き換えられます。しかし、ユーザーが入力フォームにフォーカスした場合、ホバーを外しても入力フォームはそのままである必要があります。
問題は、ホバーされていなくても入力フォームがフォーカスされている場合、入力フォームとテキスト要素が表示されることです (テキスト要素は非表示にする必要があります)。
このHTMLコードを使用しています
<div class="editable">
<span>hello</span>
<input value="hello" />
</div>
そしてこのCSS:
.editable :last-child { display: none; }
.editable:hover > :first-child { display: none; }
.editable:hover > :last-child { display: block; }
.editable > :last-child:focus { display: block; }
.editable > :last-child:focus~:first-child { display: none; } // <- this doesn't work!
JSfiddle はこちら: http://jsfiddle.net/a8U3P/
なぜこれが機能しないのか、誰にも手がかりがありますか?
編集:Firefox 13とChromiumを試しました