質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

4回答

5157閲覧

入力フォームにフォーカスを当てたときに背景色を変更したい。

kent.t

総合スコア4

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2015/04/20 12:16

CSSファイルに、
input:focus.focus{background-color:red;}
と入力し、それを参照して入力フォームの背景を変更しようとしました。
(このCSSファイルには他にもたくさんのコードが書かれております。)

更新しても反映されなかったので、コードが間違っているのかと思い、
input:focus.focus{background-color:red;}
を単体でCSSファイルにし、それを参照するためだけのHTMLファイルも作りました。
その結果、後者は入力フォームの色が変わりました。

どちらもIEで開きましたが、原因が何か教えて頂けると嬉しいです。
必要な情報が抜けているなどございましたらご連絡下さい。
当方勉強を始めて2週間の新参でございます。

以上、宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ブラウザ (Firefox, chrome) の開発者ツールを使うと
画面上の要素に どんな CSS の設定が適用されているのか、どんなイベントハンドラーが設定されていrのか
を調べることができます。
(mac で作業しているので IE の開発者ツールではどうなのか不明)

参考:

このページ中で "イベント" を検索すると、要素にわりあてられているハンドラーを調べる方法がわかります。

投稿2015/04/20 21:53

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kent.t

2015/04/20 23:53

回答ありがとうございます。 Windowsを使用しておりますが、確認してみます。
guest

0

CSSでは、同じスタイルが指定されている場合、最もセレクタのスコアが高い設定を適用するルールがあります。
簡単いうと、id属性は 100pt、タグ指定は 1pt、class 属性は 10pt となり、それぞれの合算値で比較することになります。

例:
body input.focus => body タグ (1pt) + input タグ (1pt) + focus クラス (10pt) => 12pt
input.focus => input タグ (1pt) + focus クラス (10pt) => 11pt
#hoge .focus => #hode (100pt) + focus (10pt) => 110pt

→ この場合、3つ目のスタイルが適用されることになります。

CSSが適用されないというのは、これとは別にスコアの高い設定がどこかに記載されているのかもしれません。

なお、important 属性が指定されている場合はこれらよりも優先して設定されます。
ただし、important 属性がお互いに設定されている場合は、important 属性がついている中で最もスコアが高い設定が利用されることになります。

下記のサイトにはもう少し詳しく書いてあります。
参考にしてみてはいかがでしょうか。
http://css-happylife.com/archives/2007/0113_2250.php

投稿2015/04/20 23:57

usk

総合スコア397

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

luckerさんが書かれている通り、CSSは後から記述した内容が優先されます。
下記のように記述して、背景が変わるようなら、CSSを記述した後に同じような記述をしている可能性が高いです。

input:focus.focus { background-color:red !important; }

redの後に!importantと記述することで、このスタイルが最優先で反映されます。
!importantを多用すると、何が優先されるかわからなくなるため、極力使わない方がよいです。

他の原因して、IEの互換モードで表示していると、背景が変わらないみたいなので、標準モードで表示しているか確認した方がよいかと思います。
表示モードに関しては、下記が参考になります。

参考:フォーカス時の背景色を指定する

投稿2015/04/20 13:22

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kent.t

2015/04/20 15:28

最初の方とは別の要因を書いて頂きありがとうございます! 非常に勉強になります!
guest

0

そのコードの括弧が全角なのが投稿上の問題なのでしたら、以下を実行してみてください。

<html> <head> <title>TODO supply a title</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style type="text/css"> input:focus.focus{background-color:red;} input:focus.focus{background-color:green;} </style> </head> <body> <div> <input type="text" class="focus"> </div> </body> </html>

focusすると何色に変わるでしょうか?

このようにCSSは、複数のスタイルが該当した場合、後に書かれたスタイルで上書きされます。

(このCSSファイルには他にもたくさんのコードが書かれております。)

ということですので、その他のスタイルがコンフリクトしていたのかもしれませんね。

では、こうするとどうでしょう?

<html> <head> <title>TODO supply a title</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style type="text/css"> input:focus.focus{background-color:red !important;} input:focus.focus{background-color:green;} </style> </head> <body> <div> <input type="text" class="focus"> </div> </body> </html>

このあたりから解決されてみてはいかがでしょうか?

投稿2015/04/20 12:47

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kent.t

2015/04/20 15:27

解答ありがとうございます。 丁寧に教えて頂いて大変嬉しいです! 明日やってみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問