【Cocoon CSSカスタマイズ実録】背景・ナビ透過・グラデーション・ロゴサイズが効かない原因と解決まとめ

WordPressテーマ「Cocoon」を使ってサイトデザインを調整していると、

「CSSを書いたのに何も変わらない」
「一度だけ反映されたのに、その後まったく効かない」
「背景やナビを透過したいだけなのに、なぜこんなに難しい?」

――そんな場面に何度も遭遇しました。

最初は自分のCSSの書き方が悪いのかと思い、セレクタを変え、!important を付け、キャッシュを疑い、それでも直らずに時間だけが溶けていく。Cocoonを触ったことがある人なら、一度は通る道だと思います。

この記事は、

  • Cocoonで背景色・グラデーションが効かない
  • ナビだけがどうしても透過しない
  • スクロールすると見た目が変わる
  • ロゴサイズがCSSで変更できない

といった 実際にハマった問題と、その切り分け・解決までの全過程 を、試したCSSコードそのままで記録したものです。

同じ沼にハマったとき、「あ、これだ」と思い出せる 自分用の備忘録 として、そしてこれからCocoonを触る人の 遠回りを減らすショートカット になればと思い、まとめました。


1. 背景色を変えたい → 変わらない

最初にやったのは、ごく基本的なこれ。

body {
  background-color: #f5f5f5;
}

しかし Cocoon では 何も変わらない

原因

Cocoon は body の内側に .site という白い板を敷いており、
背景はそちらで完全に覆われている。

解決

.site を透明にする必要がある。

body {
  background-color: #f5f5f5;
}

.site {
  background: transparent;
}

2. 背景画像・グラデーションも見えない

背景画像やグラデーションも同様に「効いてないように見える」。

切り分け用テスト

body {
  background: linear-gradient(90deg, red, blue) !important;
}
.site {
  background: transparent !important;
}

これで見えれば CSSは効いている。見えなければ キャッシュ


3. 実際に使う背景グラデーション(薄グレー → 白)

最終的に落ち着いたのがこれ。

body {
  background: linear-gradient(180deg, #f5f5f5, #ffffff);
}

.site {
  background: transparent;
}

「気づくか気づかないか」レベルが、長く使える。


4. コンテンツ・サイドバーに影を付ける

背景をいじると、逆に中身が平坦に見える。
そこで影を追加。

.main,
.sidebar {
  background: #fff;
  box-shadow: 0 6px 20px rgba(120,120,120,0.2);
}

影は黒ではなく グレー+透明度 が正解。


5. ロゴ画像サイズがCSSで変わらない問題

.site-logo img {
  max-width: 150px;
}

……が効かない。

原因

Cocoonではロゴの img に別クラスが付くことが多い。

正解例

.site-logo-image {
  width: 120px;
  height: auto;
}

まず 検証ツールで class 名を確認する のが最短ルート。


6. ナビを透過したい → 透過しない

#navi {
  background: transparent;
}

これでもダメ。

原因

  • .navi-in
  • ul
  • a
  • ::before 疑似要素

どこか別の要素が塗っている

強制透過セット(切り分け用)

#navi, #navi .navi-in, #navi ul, #navi li, #navi a {
  background: transparent !important;
}

#navi::before, #navi::after,
#navi .navi-in::before, #navi .navi-in::after {
  background: transparent !important;
  opacity: 0 !important;
}

7. スクロールしたときだけナビの見た目が変わる

これは 追従ヘッダー(固定ヘッダー) が原因。

スクロール後、body に別クラスが付与され、
別CSSが当たる。

対策

.fixed-header #navi,
.fixed-header #navi .navi-in,
.is-fixed #navi,
.is-fixed #navi .navi-in {
  background: transparent !important;
}

もしくは、Cocoon設定で 追従ヘッダー自体をOFF


8. キャッシュという最大の敵

今回いちばん多かった原因。

  • 一度だけ変わる
  • その後何をしても変わらない

これは ほぼ100%キャッシュ

最低限やること

  • Ctrl + F5 / Cmd + Shift + R
  • Cocoon設定 → 高速化 → CSS縮小/結合 OFF
  • キャッシュ系プラグインの削除
  • 可能なら「追加CSS」に書く

まとめ:Cocoonで詰まらないための考え方

  • 「CSSが効かない」より「上に何か乗ってる」
  • .site はほぼ必ず犯人
  • ナビは 内側・疑似要素・スクロール後 を疑う
  • まずは派手な色で切り分ける

Cocoonは悪くない。
読みやすさ重視の設計なだけ。

構造が見えた瞬間、CSSはちゃんと従ってくれます。

同じ沼にハマった人の、少し先を照らせたら成功です。

コメント

タイトルとURLをコピーしました