• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:外部CSSが反映されるHTMLとされないHTML)

外部CSSが反映されるHTMLとされないHTML

このQ&Aのポイント
  • レンタルサーバのファイルマネージャを使ってサイトを作っています。外部CSSで文字のフォントをMS Pゴシックに統一したいのですが、反映されるページとされないページができました。
  • HTML、CSS共に文字コードはShift_JISで統一していて、それぞれ<head></head>間の同じ位置に記述してあります。反映されたHTML内にはボックスの幅指定でCSSを使っていますが、その他のページにはCSSを使っていません。
  • HTML、CSS共に初心者です。この質問が初歩的なことなのか難しいことなのかもわかりません。

質問者が選んだベストアンサー

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

 いわゆるframestの子供HTMLのうち、ひとつのページのみスタイルシートが利いているということですね。  一番考えられるのは、適用されないページに書かれているスタイルシートへのパスが通っていないことです。 たとえば  frameset.html   frame1.html   frame2.html のframe2.htmlからのスタイルシートへのパス指定が誤っている。これは、frame1.htmlと異なる階層にframe2.htmlがある場合におきます。  全体(framest)を表示して該当するフレーム内で右クリックして「このフレームだけを表示する」を選択すると、そのページだけが表示されるはずです。そこでソースを見てそのパスを元にURLを表示させようとするとNot Faundになるのでは?  なお、frameは使うべきではない手法です。『HTML文書を作る場合には、この仕様における、他のDTDセットではなく strict DTD に適合する文書を作るよう推奨する。 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/conform.html#h-4.1 )』  スタイルシートを使うのでしたら、スタイルシートでフレームのように実装することを強く勧めます。フレームは過去の技術です。  HTML4.01strict(XHTML1.0strict)では非推奨、それ以降のXHTML1.1では廃止、HTML5ではiframeの形で使えますが、かっての使用方法とは変わります。

iroro16
質問者

お礼

解答ありがとうございます。 教えていただいたことを順番に試していこうと思ったのですが、ソースからパスを元にURLを表示させる方法がわからず、Not Faundになるかどうかは確認できませんでした。 HTMLやCSSについては解説サイトで聞きかじった程度の知識でしたので、非推奨の手法を使っていたとは全く知りませんでした。勉強不足ですみません…。 文字フォントの統一はいったん置いておき、まずは教えていただいたようにスタイルシートで同じデザインになるようやり直します。 質問しなければ気付かないところでした、ありがとうございました!

iroro16
質問者

補足

ご指摘通り、まずフレームをやめてCSSによる疑似フレームに変更しました。 自分では難しかったのでテンプレートをダウンロードし、最初作っていたレイアウトとは変わりましたが疑似フレームが出来上がりました。 テンプレートの中で外部CSSが使われていたので、自分で用意していたページとの違いを見なおすと、私の方はどのページにも <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <meta http-equiv="Content-Style-Type" content="text/css"> の記述をしていませんでした。 読み込みたいページにはCSSを使いませんが、この部分を付け足して実行すると直ぐに反映できました。 外部CSSを読み込むにはHTMLの<head>~</head>間に<link href="./style.css" rel="stylesheet" type="text/css">を入れるだけだと説明を読んでいたのですが、思わぬところで解決してホッとしています。 ありがとうございました!

その他の回答 (1)

  • naokita
  • ベストアンサー率57% (1008/1745)
回答No.2

キャッシュが効いてしまい、新CSSが反映される場合もあるし、 フレームか・・・ フレームからのCSSパスが違う。 つまり、ファイルの階層が違うので同じパスではCSSが読めないのでは? 試に、 http://www~~~/style.css などのフルパスで指定してみたらどうなる? まあ href="./style.css" このパスを正しいルートパスにするだけですが。

iroro16
質問者

お礼

無事解決できました!解答ありがとうございます!