CSSがどうしても効かない → 該当CSSの読込可否 → 該当CSSの反映可否

CSSCSSトラブル対応

問題発生状況を正確に把握

 状態:-  閲覧数:29,013  投稿日:2013-03-23  更新日:2018-03-15

手順


0.コンソール画面でエラー確認
1.該当CSSの読込可否(CSS該当箇所が正常に読み込まれているかどうか。コンソール画面で確認)
2.該当CSSの反映可否(設定CSS内容が、ブラウザに正常反映されているかどうか)

それでもダメな場合


CSS該当箇所を先頭へ記述し反映を確認
・コメントアウト絡みのエラーなら、これで解決するはず

実際に遭遇した例1.「CSSセレクタ{プロパティ名:値}」とすべきところを「CSSセレクタ」と記述

 閲覧数:724 投稿日:2013-03-23 更新日:2017-07-14

問題発生


・単純なCSSなのに、どうしても内容が反映されない


解決した方法


・ソースにあった余計なコードを削除したら、無事反映されるようになった


遭遇例


・このCSS見て、何が問題か一発で分かる人がいたら、プロだと思う
・自分はまるで分からなかった
・20分ぐらい悩み続けた
▼style.css
div.main .nav-global>li>a {
padding-top: 0px;
padding-bottom: 0px;
}
div.mian .nav-global>li>a {

}
.nav>li>a:hover
/* グローバルナビ */

/* ソースコード表示 */
div.hoge1 pre {
background-color:#191970;
color:white;
}  
div.hoge1 pre {
background-color:#333333;
color:white;
}  
div.hoge2 pre{
background-color:#000000;
color:white;
}



症状


問題になった症状
・CSS内容が反映されない
・「relative」絡みの「z-index」とか、そんなややこしいヤツではない
・単純なCSS
・具体的には、背景色が反映されない
・「invalid property value css」エラーは表示されていないので、プロパティ記述間違いではない
・クラス名が違っていたとか、そういうオチではない


謎の挙動


一番混乱したのは、以下に記載した「謎の挙動」を示したこと
・一つ目の「div.hoge1 pre」の背景色は表示されない
・二つ目の「div.hoge1 pre」の背景色は表示される
・一つ目の「div.hoge1 pre」を削除すると、二つ目の「div.hoge1 pre」の背景色は表示されなくなる
・つまり、どゆこと? ???

この時の心境は?
・自分の人格を否定されたような気分
・そこまでいかなくても、これまで培ってきたコーディングスキルを全否定されたような気分
・あり得ねええええ!

実際に遭遇した例1.の原因(もしくは敗因)

 閲覧数:685 投稿日:2013-03-23 更新日:2017-07-14

結論


・「.nav>li>a:hover」が邪魔をしている


Why?


・初め「「.nav>li>a:hover」」には「{」タグも書いていないのに、何で最初の「}」まで取り込まれるのかまるで分からなかった


解説


要は、こういうこと
・人間の目
▼style.css
.nav>li>a:hover
/* グローバルナビ */

/* ソースコード表示 */
div.hoge1 pre {
background-color:#191970;
color:white;
}  
div.hoge1 pre {
background-color:#333333;
color:white;
}  


・ブラウザ解析
▼style.css
.nav>li>a:hoverdiv.hoge1 pre {
background-color:#191970;
color:white;
}  
div.hoge1 pre {
background-color:#333333;
color:white;
}  


今回の反省を踏まえて

 閲覧数:670 投稿日:2013-03-23 更新日:2013-03-23

コメント


・解決してから最初に考えたことは、普段書かないコメントを残したりするから、こんなコード残骸に気が付かないんだよ
・コメント書いていなければ、もっと早期発見できたはず


経験値


・だけど、よくよく考えてみれば、それは無能な人間の言い訳に過ぎない
・今回の件で言えば、一つ目のCSSが効かずに、二つ目のCSSが効いた時点で、「}」忘れを真っ先に疑うべきではないのか?
・また、確かに「invalid property value css」エラーは表示されなかったが、肝心のCSSが表示されない時点の対処方法の保持リストが少な過ぎた
・単純に経験値が足りない。要は、オレのコーディングスキルの問題……

CSSが反映されない時にやること

 閲覧数:735 投稿日:2013-03-23 更新日:2020-04-07

要約


まず、問題を2つに分けて考える
1.該当CSSの読込可否(ブラウザから設定CSS該当箇所が表示されるかどうか)
2.該当CSSの反映可否(設定CSS内容が、ブラウザに正常反映されるかどうか)
※同じように見えるが、この2つを切り離して考え、順を追って原因を探していく方が、最終的には効率的な解決に繋がる

1.読込可否


設定CSS該当箇所が読み込まれない(表示されない)時の対処バリエーション
1.CSS自体の読込を確認 … CSSファイル名、パスを間違えていないか
2.設定CSS該当箇所の読込確認 … 「ID」もしくは「クラス名」を間違えていないか
3.CSSファイル(特に、該当箇所より前部分)に、余計なコード残骸がないか確認 … 「{」「}」の「入れ子」や「2重掲載」はないか、など 

2.反映可否


(設定CSS該当箇所は読み込まれているのに)設定したCSS内容が反映されない時の対処バリエーション
1.「invalid property value css」エラー … その属性に存在しないプロパティ名を指定など
2.重複 … 同じプロパティが存在する場合、後で書いた内容の方が反映される
3.重要度 … 但し「!important;」が付与されている場合は、そのプロパティ内容が優先される
4.内部外部 … 外部CSSより、HTML直書しているプロパティ内容が優先される(多分)
5.その他個別対応 … 「relative」絡みの「z-index」や、「ブラウザ(及びバージョン)間差異」など

3.コメントアウト


1.コメントアウトする際、誤って「//」を利用していないか

4.その他


疲れていると、普段なら絶対にしない間違いをおかす
・しかもそういうあり得ないミスほど、間違うはずないと思っているので、発見に時間がかかる
・以下、実際に遭遇した例
・頼むよ、オレ!

1.""の片方が足りない
<div class="container>


2.余計な"を付与
・別の個所で「content: "\f10d";」があったので、恐らくコピペミスだと思われる
.imgyearspot{
 left:1.3rem;"
}


3.タグ名が異なる
・ulなのにui
<ui class="container>


4.{}記述漏れ
.nav>li>a:hover


5.{}記述ミス
section table{margin-top:-1rem;]


6.クラス記述ミス
・「.」と書くべき所を「..」と記述
<?php
 $h3Img = file_get_contents("/var/www/xxxx/xxxx/views/common/lib/sceditor/minified/themes/headers-button.png");
?>
<style>
..sceditor-button-headers div{
   background-image:url(data:image/jpg;base64,<?php echo base64_encode($h3Img); ?>);
}
</style>


JavaScriptを疑う

 閲覧数:607 投稿日:2013-09-27 更新日:2013-09-27

概要


・実際にトラブッたわけではないけど、トラブル可能性があるかも、と感じたのでメモ


具体例


予めCSSで透明度を0にしておき、jQueryでopacityを1へ変更
・今回は自分でコーディングしたから当然把握できるけど、誰かがコーディングしたこのコードを見た場合、すぐに挙動を理解できるだろうか?



実際に遭遇した例2.「CSSセレクタ{プロパティ名:値}」とすべきところを「CSSセレクタ{プロパティ名:値]」と記述

 閲覧数:454 投稿日:2017-07-14 更新日:2017-07-14

問題発生


レイアウトが崩れまくっている
・位置ずれ
・フォントサイズが勝手に変更されている
「兄弟要素の兄要素を選択出来ない」ため、無理やり記述した内容がイケなかったの?
em{
 font-style:normal;
 font-weight:bold;
}

/* テーブル直前のpタグを選択出来ないので */
section table{margin-top:-1rem;]



疑った内容


sectionタグは指定できない?
・sectionタグ内にあるtableタグは指定できない?
・そんなはずないよね?


原因判明


「}」と記述すべきところを「]」と記述していたから


背景画像がどうしても表示されない → 「clear:both;」を挿入してみる

ボタンクリック出来ない → 「display-inline;」を「display:inline-block;」へ変更


×

ゲストコメント一覧

番号 内容 投稿日
1 この記事で助かりました ありがとうございます 2013-09-11
2 うむ 2014-03-21
3 本当に、くる日も来る日も修正ばかりしているとそのうち自らが修正箇所をつくっていしまうというスパイラルに陥りますね。吐きそうになります。 2014-12-26
コメント件数 … 3件

類似度ページランキング
順位 ページタイトル抜粋
1 CSSがどうしても効かない → 該当CSSの読込可否 → 該当CSSの反映可否 59
2 既存サービスのCSSがどうしても効かない → 正常動作する最小構成の単体デモを作成し、移し替える 34
3 RGB → HSL 勘違いしていたかも 28
4 navタグで定義している部分だけCSSが効かない【html5】 26
5 背景画像がどうしても表示されない → 「clear:both;」を挿入してみる 26
6 Chrome プロファイルが壊れている、と毎回表示されるが、英語なのでどうしたら良いか分からない 25
7 作成した素材がどうしても見つからないときは、「png形式」を疑ってみる 24
8 IE8で、フォームの縦位置がどうしても真ん中にこない場合の、最後の手段(案) 23
9 ページ読み込みが完了しない 23
10 レイアウトがどうしても崩れるときは、div marginへマイナス値が設定されていないか、確かめる 23
11 Chromeデベロッパーツールで、スマホソースコードを確認したいが、USBデバッグ機能をどうしても有効にすることが出来ない 22
12 box-sizingは危険なCSS / レイアウトや位置がどうしても意図した通り設定できない場合は、box-sizingを疑う 22
13 遠近グリッド はCS3にはないの? 21
14 「z-index」が効かない時は「-1」を指定してみる 21
15 テーブル枠線がどうしても消えない時は「border-collapse: collapse;」 21
16 SCSSは良いことばかりではないかも 21
17 Chrome でキャッシュを効かさない 21
18 「レイアウト崩れ」がどうしても解決しない → Chrome「デベロッパーツール」で怪しいと思った要素を、正常表示されるまで削除し続けていく 20
19 拡張機能が Chrome によって無効にされました / この拡張機能は破損している可能性があります。 20
20 「position:sticky;」がどうしても効かない →
を一旦削除してみる →
に「display:inline;」を指定
20
2024/4/20 3:45 更新
週間人気ページランキング / 4-13 → 4-19
順位 ページタイトル抜粋 アクセス数
1 16進数カラーコード / 2進数 28
2 Windows10で「Google Chrome」が常に最前面に表示される。「アクティブウィンドウ」が最前面で表示されない → 解決方法存在しない | Google Chrome(ブラウザ) 15
3 RGB ⇔ Lab | 色変換(色) 13
4 Design 0 11
4 「マウスオーバー」「ロールオーバー」「ホバー」の違い | CSS 11
5 血の色 / #b30000 / #360800 / #ff0000 | カラーコード(色) 10
6 RGBの種類 / ビットカラー | RGB(色) 9
7 「Font Awesome 4」と「Font Awesome 5」の違い(Font Awesome バージョン4からのアップグレード) | Font Awesome(フォント) 7
8 「z-index」効果を打ち消すスタイルシートは、「z-index:auto;」 6
8 「Chrome拡張機能」開発中に遭遇したエラー | Chrome 拡張機能 6
9 Chromeデベロッパーツールで、スマホソースコードを確認したいが、USBデバッグ機能をどうしても有効にすることが出来ない | モバイルデザイン(デザイン) 5
9 「bgcolor」「background-color」「background」の違い | CSS 5
10 「overflow」効果を打ち消すスタイルシートは、「overflow: auto;」 3
10 「Google Chrome」の文字が突然ギザギザで表示されるようになったら、「chrome://flags/#top-chrome-md」へアクセス後、右上の「Reset all」ボタンをクリックします。 | Google Chrome(ブラウザ) 3
10 Chrome でキャッシュを効かさない | Google Chrome(ブラウザ) 3
11 カラーコード / 色コード | カラーコード(色) 2
11 「Create Link」代替拡張機能を探した結果は、「CopyTabTitleUrl」でした。 | CopyTabTitleUrl(Chrome 拡張機能) 2
11 イラスト素材 | デザイン 2
11 HTML5でiframeスクロールバーを表示しない方法が不明 | HTML5(HTML) 2
11 HSLとHSVの違い | 色変換(色) 2
2024/4/20 1:01 更新