dポイントプレゼントキャンペーン実施中!

レンタルサーバのファイルマネージャを使ってサイトを作っています。

外部CSSで文字のフォントをMS Pゴシックに統一したいのですが、反映されるページとされないページができました。

CSSには、
@charset "Shift_JIS";
p {
font-family: "MS Pゴシック",sans-serif;
}

読み込みには、
<link href="./style.css" rel="stylesheet" type="text/css">
と記述しました。

反映されたのはサイト2ページ目の2分割フレームの片側だけで、その他のページはブラウザで指定したフォントのままCSSが反映しません。
HTML、CSS共に文字コードはShift_JISで統一していて、それぞれ<head></head>間の同じ位置に記述してあります。

反映されたHTML内にはボックスの幅指定でCSSを使っていますが、その他のページにはCSSを使っていません。違いはこれだと思うのですが、それがきっかけで反映されたりされなかったりと変わるものなのでしょうか?

HTML、CSS共に初心者です。この質問が初歩的なことなのか難しいことなのかもわかりません。
よろしくお願いします。

A 回答 (2件)

 いわゆる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-html4 … )』
 スタイルシートを使うのでしたら、スタイルシートでフレームのように実装することを強く勧めます。フレームは過去の技術です。
 HTML4.01strict(XHTML1.0strict)では非推奨、それ以降のXHTML1.1では廃止、HTML5ではiframeの形で使えますが、かっての使用方法とは変わります。

この回答への補足

ご指摘通り、まずフレームをやめて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">を入れるだけだと説明を読んでいたのですが、思わぬところで解決してホッとしています。
ありがとうございました!

補足日時:2012/12/15 03:58
    • good
    • 0
この回答へのお礼

解答ありがとうございます。
教えていただいたことを順番に試していこうと思ったのですが、ソースからパスを元にURLを表示させる方法がわからず、Not Faundになるかどうかは確認できませんでした。

HTMLやCSSについては解説サイトで聞きかじった程度の知識でしたので、非推奨の手法を使っていたとは全く知りませんでした。勉強不足ですみません…。

文字フォントの統一はいったん置いておき、まずは教えていただいたようにスタイルシートで同じデザインになるようやり直します。
質問しなければ気付かないところでした、ありがとうございました!

お礼日時:2012/12/14 21:41

キャッシュが効いてしまい、新CSSが反映される場合もあるし、


フレームか・・・
フレームからのCSSパスが違う。
つまり、ファイルの階層が違うので同じパスではCSSが読めないのでは?
試に、
http://www~~~/style.css などのフルパスで指定してみたらどうなる?
まあ
href="./style.css"
このパスを正しいルートパスにするだけですが。
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/12/15 03:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!