• 締切済み

chromeでの擬似クラス:focus について

神崎 渉瑠(@taloo)の回答

回答No.4

フォーカスについてちょっと調べてみたのですが、 http://msdn.microsoft.com/en-us/library/ie/ms534654(v=vs.85).aspx MSDNによると、<a>要素は「focus可能」と「tabStop可能」の2つのプロパティを持ち、「<a>はデフォルトで両方がyes」になっています。 MDNでは言及されていないようです。 Webkitはどこに書かれているのかわかりません。。。 http://trac.webkit.org/wiki W3Cのドキュメントにも、<a>や<input>などをクリック操作、タブキー操作したときのデフォルト動作として、focusについての言及はないようです。 http://www.w3.org/TR/1999/REC-html401-19991224/interact/forms.html#adef-tabindex 推測ですが、Webkitのみ「<a>はデフォルトでfocus可能要素であり、クリックではfocusしないがtabキーでfocus可能」となっていて、 Webkit以外が、「<a>はデフォルトでfocus可能要素であり、クリックでもtabキーでもfocus可能」となっているようです。 <input>は全てのブラウザで、デフォルトでfocus可能要素であり、クリックでもtabキーでもfocus可能となっているようでした。 W3Cの言語仕様にも書かれていないため対処療法(今後のブラウザアップデートで動作が変わる可能性がある)となりますが、tabindexを指定してみてください。 この方法なら、JavaScriptではなくHTMLで指定できるようです。 <a href="#" tabindex="0"> tabstopの操作を指示する物ですが、多くのブラウザがtabstopとfocusを連動しているようです。 また、webkitに関しては、<a>をクリックをした時のフォーカス処理をどう扱うかが変わるようです。 tabindexを0にすると、HTMLに書かれている順番通りにtabstopの順番が決定されます。(tabstopの動作はtabindexを書かない時と同じままで、focusの動作のみが変わる。) =============== 検証 <a href="#" tabindex="0">anchor-0</a> <a href="#" tabindex="0">anchor-1</a> <a href="#">anchor-2</a> <a href="#">anchor-3</a> <a href="#">anchor-4</a> anchor-1をクリックしてtabキーを押すとanchor-2がフォーカスされるので、anchor-1のクリックによりanchor-1にフォーカスが当たった事が確認できます。 しかし、anchor-3をクリックしてtabキーを押すとanchor-0がフォーカスされるので、anchor-3のクリックではanchor-3にフォーカスが当たっていない(全ての要素からフォーカスが外れる)ことが確認できます。 スタイルシートで a:focus{} を指定しておけば、フォーカスに合わせてスタイルが適用されることも確認できます。 ----------- Netscape、Gecko(Firefox)、Trident(IE)、Presto(旧Opera)、フィーチャーフォンなどの動作から考えれば、Webkitだけが特殊だと思いますけどね。 (全てのブラウザが異なる仕様のもとで動作しているそれぞれに正しい動作です。)

関連するQ&A

  • Chrome はそんなに速さはないし、実際は遅い!?

    Chrome はそんなに速さはないし、実際は遅い!? Chromeはそんなに速さはないし、実際は遅い!? firefoxと比べるとページ表示がおそっ!エクステも使えそうな感じだし、すっきりとしたデザインもOK。で速いならchromeに移行しようとしたけど肝心の速さが期待以下でがっかりだ。 エクステ取っ払ってもアドオンてんこ盛りに劣るのかよw 速さ的にはIE8といい勝負かも。firefoxがシャキーン!って感じで表示するのにChromeはシャ・・キーン!っていう具合です。 世間では最近評判いいような記事も見るけど信じられん。(起動だけは速いけど) 頑張ってエクステも集めたのに・・・・せめてfirefox程度まで速くする方法などはないものでしょうか

  • [CSS] focusについて

    入力フォームを作っています。 CSSを使って入力フォームにフォーカスがある場合の表示方法を変えたいのです。 input:focus { background-color: #000000; } 上記の方法で可能なはずですが全く変化ありません。 ブラウザはIE6です。

    • ベストアンサー
    • HTML
  • 擬似クラスの子要素を指定するセレクタ

    リンク色を変えるセレクタについて質問です。 以下のHTMLがある場合に、abcの文字色を変えるCSSセレクタを a:link { color:blue } ←これ以外で教えて下さい。 <div id="id"> <a href="#"><span>abc</span></a> </div> 以下のCSSでは色が変わりませんでした。 #id a:link { color:pink } #id a:link span { color:pink } #id a:link * { color:pink } (HTML構造は都度変わるため隣接セレクタではなく汎用性のある下位セレクタで指定したいです。)

    • ベストアンサー
    • CSS
  • 擬似クラスがupできない

    こんばんは。どうしても擬似クラスがupできません。 =01.css= <style type="text/css"> a:hover{ font-weight:bold; text-decoration:none; color:red; } </style> =index.html= <html> <head> <title>○▲□×</title> <link rel="stylesheet" href="01.css" type="text/css"> </head> どうして擬似クラスがupできないのですか? どこか打ち間違いでしょうか? hoverだけ使いたいので、それ以外は打つ必要ないと 思いますし、今後、他のスタイルも加えて行きたくも 思ってます。 どうぞよろしくお願いします。

  • Google chrome でYAHOOのトップページ表示がおかしい

    ブラウザ Google chromeを使用していますが先ほどからYAHOOのトップページ(通常版)のみCSSがリンクしていないような表示になっています。 IE8やFirefoxでは問題なさそうです。 Google chromeキャッシュ等はクリアーしましたが、症状変わりません。 どなたか、原因のわかる方はいらっしゃいますでしょうか?

  • Chrome ブラウザの配色

    googleブラウザChromeを使っている方で配色の変更方法がわかるかたいらっしゃいませんか? FirefoxやIEなどでは、そのサイトの色を無視して配色をすることができます。(例えば目に優しいようにどんなサイトでも黒地に白文字でリンクは水色など) Chromeではそのようなことはできませんでしょうか? アドオンなどで実現できるのであればそれでも良いのですが・・・ 宜しくお願いします。

  • 送ったURLをChromeで開かせたい

    人にhttps://で始まる、とあるURLをメールで送ります。 そのメールを見る相手側のパソコンにはIEもFirefoxもChromeも導入されている前提で、かつそのパソコンのデフォルトのブラウザは上記3種類のどれかに決まってはいません。(ばらばらです) そんな場合でも、送ったURL Linkをクリックすると、そのLinkに限っては必ずChromeで開くようにする方法(メールへのLinkの貼り付け方)はあるのでしょうか。 確か、Chrome :// とかをつけてhttps:// を送っているようなメールを見たような記憶があるのですが、勘違いでしょうか。

  • Chromeで表示するとズレてしまう

    作成したホームページをIEで表示すると全く問題ないのですが、Google Chromeでチェックするとぐちゃぐちゃで全くでたらめに表示されてしまいます。どうすればきちんと表示することができるのでしょうか?これがCSS ハックというものなのでしょうか?だとすれば、CSSの中にChrome対応の一文を挿入すれば回避できるのでしょうか?どなた様かご教授願えませんでしょうか。どうぞ宜しくお願い致します!!

  • クラス属性?

    CSSの外部呼出しで、 A:link { color: #0033cc; } A:visited { color: #0033cc; } A:active { color : red; } 上記をdivでまとめたいのですが、記述の仕方がわかりません。 そしてもう1パターン A:link { color: #FFFFFF; } A:visited { color: #FFFFFF; } A:active { color : red; } というものもdivでまとめて、外部呼出しのCSSファイルに記述したいのですが、可能でしょうか?

  • style属性を使って擬似クラスを表現することは可能ですか?

    CSSの読み込み方には3通りあります。 1)<head>~</head>内にstyle要素をマークアップする。 2)外部CSSファイルをHTMLに読み込ませる。 3)任意のタグにstyle属性を指定する。 そこで質問なのですが、3)のstyle属性で擬似クラスを指定する事は可能でしょうか? 1)と2)の方法であれば、 div a:link { color : #fff ; background : blue ;} div a:visited { color : #fff ; background : purple ;} div a:hover { color : #fff ; background : aqua ;} div a:active { color : #fff ; background : purple ;} のように指定すればよいだけですが、 3)の方法、つまりstyle属性を用いて擬似クラスの指定の仕方が分かりません。 宜しくお願いします。

    • ベストアンサー
    • CSS