• ベストアンサー

CSSのデザインがうまくいきません

表示ファイル http://www.loplopland.com/newfile.html CSSファイル http://www.loplopland.com/sample_l_180_490.css この外部CSSで直したいところは 1.フッターの上の部分に余白ができてしまったので消したい。 2.メイン表示部分が下までバックグラウンドイメージを表示したい。 以上の2点を改善したいんですが、うまくいきません。 どのように直したらいいかご教授下さい。 おねがいします。

  • CSS
  • 回答数3
  • ありがとう数1

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

  • ベストアンサー
noname#76085
noname#76085
回答No.3

おそらく、ブラウザはInternet Explorerを使われていると思いますが、私は普段「Firefox(http://mozilla.jp/firefox/)」と「Opera(http://jp.opera.com/)」を普段ブラウザとして使用しています。 Firefox/Operaともにフッターの上の部分の余白はありません。 これは、W3Cが勧告(強制ではない)しているCSSの視覚効果に対して、IEが勧告通りに描画していないため起きているものと思われます(※)。 Firefox/Operaともに無償で利用できるので、一度IEではなくFirefoxなどで視覚効果がどう描かれているか見てください。レイアウトが崩れているはずです。 レイアウトの崩れは、.mainのwidth+.mainのpadding+.sideのwidth+.sideのpadding=840pxになるので、#containerの width:800px;におさまりきれないため発生しているので、containerのwidthを広げる(840px以上)か、main/sideの大きさを調節することで解決します。 サイトを作る際は、IEを過信しないことです。 現状では、IEはW3Cの勧告通りに表示しているとは限りません。Firefoxが、勧告により近い描画をしている、と言われています。 ※)ブラウザごとにスタイルシートを分けて表示させる、ということも可能のようですが、それについては私の知っているモノの範疇を超えてしまっているので、下手に私が回答をするより、別の方の回答を待った方がいいでしょう。

nurunurupo
質問者

お礼

あなたの言うようにOperaとFirefoxの二つを私もインストールしてみました。ずいぶん表示されるものが違ったのでびっくりしましたが、思い切って最初から作り直して3つのブラウザで表示できるようにすることができました。 ありがとうございました。

その他の回答 (2)

noname#76085
noname#76085
回答No.2

> 真似して書いただけなので理解はしていません。 先人の知恵に学ぶことは決して悪いことではありません。ですが、真似をしただけではダメです。 <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> このmetaタグの後半、「charset=Shift_JIS」とありますが、これは、『このファイルはShift_JISの文字コードを使用している』という意味になりますが、ファイルを拝見したところ、実際に使用している文字コードはUTF-8のようです。なので、「charset=UTF-8」とするべきです。 HTMLやCSSを、テキストエディタで作成(タグ手打ちなどと言われることもあります)するときは、HTML&CSS辞典、というような本を手元に置いて、「これはどんな意味があるのか?」と探求しながら作成していかないと。 それがめんどくさい、と思ったのであれば、HTML作成ソフト(無償で使えるものだと、私の知る範囲ではalpha Edit(http://www.pololon.com/koby/)のようなソフトを使用して作成した方がよろしいかと思います。

nurunurupo
質問者

補足

ご指摘の件は理解できましたが、 1.フッターの上の部分に余白ができてしまったので消したい。 2.メイン表示部分が下までバックグラウンドイメージを表示したい。 は結局自分で調べなさいということですか?

noname#76085
noname#76085
回答No.1

まず先に、HTMLファイルのソースを拝見して4行目、 <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> このタグの意味を理解していますか?

nurunurupo
質問者

補足

どこかのウェブページにあったテンプレートのヘッダ部分を真似して書いただけなので理解はしていません。

関連するQ&A

  • CSSでのデザイン崩れ改善方法

    表示ファイル http://www.loplopland.com/newfile.html CSSファイル http://www.loplopland.com/sample_l_180_490.css この外部CSSで直したいところは 1.フッターの上の部分に余白ができてしまったので消したい。 2.メイン表示部分が下までバックグラウンドイメージを表示したい。 以上の2点を改善したいんですが、うまくいきません。 どのように直したらいいかご教授下さい。 おねがいします。

    • ベストアンサー
    • HTML
  • CSSでの画像指定について。

    CSSでの画像指定について。 ファイルパスの指定について教えてください。 フォルダ1の中に「sample.html」、「sample.css」、「img」フォルダが入っており、 「img」フォルダの中に、「nature_01.gif」が入っています(下図)。 -------------------------------------------------------------------------- フォルダ1 L sample.html L sample.css L img(フォルダ)  img(フォルダ)  L nature_01.gif   ---------------------------------------------------------------------------- このファイル構成だと、sample.css の中で 『background-image:url(/img/nature_01.gif)』のようにパスを指定すれば良い と理解していたのですが、背景に画像が表示されませんでした。 その後、下記のように修正すると、画像が表示されるようになりました。 firefox3.5 →修正後は画像が表示される。 Internet explore 8 →修正前、修正後ともに表示されない。 ----------------------------------------------------------------------- 【修正前】 #contents{ width:750px; background-image:url(/img/nature_01.gif); 【修正後】 #contents{ width:750px; background-image:url(../img/nature_01.gif); ------------------------------------------------------------------------ OS・・・windows xp なぜ、こうなるのか、わかるかたがいましたら教えてください。 よろしくお願いします。

  • CSSのfloatとdivについて質問です。

    CSSのfloatとdivについて質問です。 下記のようにmainの中にlocal-navigationを配置したいのですがやり方が分からないのでご教授お願いします。 現在はlocal-navigationがfooterの上に表示されて自分の意図することが出来ていません。 sidebar-leftとsideba-rightはfooter部分まで伸びていて欲しいのです。 やりたいこと: ____________________________ |header-menu                      | |___________________________| |sidebar-left|     main     |sidebar-right | |      |            |       | |      |            |       | |      |            |       | |      |            |       | |      |            |       | |      |            |       | |      |            |       | |      |            |       | |      |____________|       | |       |local-navigation    |       | |______|____________|_______| |footer                         | |___________________________| 現在の状況: ____________________________ |header-menu                      | |___________________________| |sidebar-left|     main     |sidebar-right | |      |            |       | |      |            |       | |      |            |       | |      |            |       | |      |            |       | |      |            |       | |      |            |       | |      |            |       | |      |            |       | |       |            |       | |______|____________|_______| |local-navigation                    | |___________________________| |footer                         | |___________________________| 過去の質問: 「CSSでメイン部分が80%ぐらいに表示するには? http://okwave.jp/qa/q7728293.html 」 「CSSのbackground-imageについて http://okwave.jp/qa/q7728304.html 」

    • ベストアンサー
    • CSS
  • ブラウザ毎に外部CSSファイルでデザイン変更したい

    CGIソースファイル http://www.loplopland.com/test/newfile.html このCGIでインターネットエクスプローラーだけ別の外部CSSファイルでデザイン変更したいんですが、どのようにしたらいいでしょうか? 別のところで $ua = $ENV{'HTTP_USER_AGENT'}; if (index($ua, "compatible; MSIE") >= 0) { $stylebase = "stylebase_IE.css"; } else { $stylebase = "stylebase.css"; } を入れたらいいと言われたんですが、どこにどう入れたらいいかいまいちわかりませんでした。

  • html/css について質問です。

    現在、htmlとcssを勉強しながら、トップページのコーディングしています。 以下の処理を行っています。 〇一番上に[幅136px高さ34px]のヘッダ画像を横方向にリピートして、background-attachmentはscrollで固定。上や左や右は余白なしにしたい。 〇一番下に[幅168px高さ42px]のフッダ画像を横方向にリピートして、background-attachmentはfixedでブラウザの下部分に常についてくるようにしたい。 〇javaScriptでランダムにトップの画像を表示している。 しかし、3点問題があります。 ●一番上の画像について、background-position: left bottom;にしても、ブラウザ等で確認してみると、 上や左に5px程度の余白(後ろの背景画像が隙間から見えている)ができてしまいます。 marginやpaddingを追加して0にしても、余白は埋まりません。余白を埋めてブラウザの上や左を埋めるにはどうすればよいでしょうか? ●フッダの画像が、下にいけば消えてしまいます。CSSでheight: 42px;という設定をしているのですが、 この範囲がブラウザを大きくすると消えて見えなくなります。 だからといって、heightを設定しないと全くフッダ画像が表示されなくなります。消えずに常に表示されるようにするにはどうすればよいでしょうか? ●またjavascriptで背景画像を表示させているにも関わらず、フッダ画像やヘッダ画像を背景画像のような記述でコーディングしてしまっています。これは普通の画像を右方向へリピートさせる方法がわからなかったため、background-repeat: repeat-x;というコードを書いてしまっています。このようなコーディングはやはり適当ではないでしょうか? どなたかご指導お願いします。 [html] <body> <SCRIPT language="JavaScript"> bgc = new Array(); bgc[0] = "url(../image/bg1.jpg)"; bgc[1] = "url(../image/bg2.jpg)"; bgc[2] = "url(../image/bg3.jpg)"; bgc[3] = "url(../image/bg4.jpg)"; bgc[4] = "url(../image/bg5.jpg)"; n = Math.floor(Math.random()*bgc.length); document.body.style.backgroundImage = bgc[n] </SCRIPT> <div id="container"> <div id="top_header"></div> <div id="top_footer"></div> </div> </body> [css] #container{ width:100%; height:100%; } #top_header{ background-image: url(../image/top_header.gif); height: 34px; background-position: left top; background-repeat: repeat-x; background-attachment: scroll; z-index: 1; } #top_footer{ background-image: url(../image/top_footer.gif); height: 42px; bottom: 0; background-position: left bottom; background-repeat: repeat-x; background-attachment:fixed; z-index: 2; }

    • ベストアンサー
    • CSS
  • CSSのbackground-imageについて

    CSSのbackground-imageについて質問です。 前回「CSSでメイン部分が80%ぐらいに表示するには? http://okwave.jp/qa/q7728293.html 」で質問した者です。 ______ ||   || ||main || ||   || ||   || ~~~~~~ background-imageでメイン部分以外をパターン画像を使いたいと思いました。 そこでふと疑問が沸いたので質問させてもらいます。 sidebar-left, main, sidebar-rightをdivで区切っていると、 background-imageで背景画像を指定するにはsidebar-leftとsidebar-rightの2カ所に同じ画像を指定しないといけません。 divで区切るたびにbackground-imageを指定するのはは間違っているのでしょうか? 背景画像を何か所も指定するやり方は間違っているような気がしたので質問します。

    • ベストアンサー
    • CSS
  • フッターのCSSに関して

    フッターのCSSの処理でわからず困っています。 やりたいことは以下の通りです。 1.ブラウザが十分に大きい場合は一番下にフッターを置く。 2.もしブラウザの大きさが取れない場合はフッターの上の部分の終了後にフッターを置きたい。 フッターはposition: absolute;で指定してあるのでブラウザが十分に大きい場合は問題ないのですが、ブラウザを小さくして最表示した場合にフッター部分がメインの部分のところに被ってしまいます。 出来ればメインコンテンツの下部がフッターの上部より下にある場合はメインコンテンツの下にフッターがくる用に修正したいです。

    • ベストアンサー
    • CSS
  • cssのmarginについて教えてください

    cssのmarginについて教えてください cssを使い、一般的な1カラムのサイトを制作しています。 外枠を組む所までは上手く行ったのですが 中身を入れるとfirefoxで表示した時、上部分に変な余白が出てしまいました。 IE7では問題なく表示されます。 色々と試した結果、中の要素のmargin(下記におけるdiv#header pの部分)が 外枠にも影響を及ぼしているんだろうと予測しているのですが、対処方法が解りません。 (この場合、headerの上部に30pxの空白が出来てしまいます。main等で試しても同じことになりました。) marginを0にする、または<p>や<div>で囲わずに「あいうえお」と書けば余白は出ないのですが、そういう訳にもいかず・・・。 試しに<h1>で囲んだり、idではなくclassで囲んでみたりしたのですが結果は変わらず、 <div>ではなく<span>で囲むと余白はでない変わりにmargin自体が無効状態になってしまいました。 それともこういう場合、div#header p部分のmarginがdiv#headerにも適用されるのは当たり前の事で、私の考え方が間違えているのでしょうか? div#header pのmarginが影響してるのだとしても、上にだけ影響が出て左右には影響がないことにも首をひねっています。 独学でやってきたので曖昧な部分が多く、質問も上手く文章に出来ず申し訳ないのですが 詳しい方がいらっしゃいましたら、どうぞよろしくお願いします。 ---------------------------------------------------------------------- div#box {background-color: #ffffff ; width : 850px ; margin : 0 auto ; min-height: 100% ; position:relative ;} div#header {background-image: url(image/back-header.gif) ; width : 850px ; height : 90px ;} div#menu {background-image: url(image/back-menu.gif) ; width : 850px ; height : 45px ;} div#main {background-image: url(image/back-main.gif) ; background-repeat: no-repeat ; background-position: top ; width : 850px ; padding-bottom: 25px ;} div#footer {background-image: url(image/back-footer.gif) ; width : 850px ; height : 25px ; position: absolute ; bottom: 0px ; } --------------------------------------------- div#header p {font-size : 0.9em ; margin: 30px ;} ---------------------------------------------------------------------- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <body> <div id="box"> <div id="header"><p>あいうえお</p></div> <div id="menu">省略</div> <div id="main">省略</div> <div id="footer">省略</div> </div>

    • ベストアンサー
    • HTML
  • 【初心者】CSSリンクについて

    外部CSSのあるテンプレートをダウンロードしました。 今まではHTMLだけでHPを作ってたのでCSSについては全くわかりません>< ヘッダー、左にメニュー、右にメイン、そして下にフッターがあるものなんですが、 メニューをクリックして内容をメインに表示させるというのがどうやっているのかわかりません--; 本当に初歩的なことですみません。。 今までだとフレームを使ってターゲット指定でメインにリンクする方法ですがCSSだと?? 自分で本も買ってきて勉強もしてますが外部呼出しSCC…難しいですT_T

    • ベストアンサー
    • HTML
  • 誰か安くCSS作ってくれませんか?

    ■依頼内容:CSS作成&サンプルページ作成 例:http://catfrog.net/PHP/AV/AV.php 「そのサイト用のCSS」と「そのCSSを扱う上でどこに何を置けばいいのかがわかるサンプルページ」を作成して欲しい。実際のページ作成はそのサンプルをみて自分で行うつもりです。 現在はhatenaダイアリー用に別の人に作ってもらったものを適当に自分でいじっている。現状のCSSをもう少しまともなものにしてほしい。 ■希望CSS構成 「ヘッダー・メイン部分・サイドメニュー(ひとつ)・フッター」という感じ。特に画面遷移とか必要なく、1ページがシンプルかつ綺麗にでればそれでOK。 こういう依頼で作業してくれる最安値業者はどこですか?もしくは誰かやってくれる個人の方教えてください。

    • 締切済み
    • CSS

専門家に質問してみよう