• ベストアンサー

cssで角丸で一部の画像だけを変更したい。

cssで角丸テーブルにトライしています。(参考にしたサイトhttp://jmblog.jp/archives/94) これをアレンジして、左上の画像(タイトル部分にする)のみを枠によって変えたいと思っています。<span class="taiken"></span>のクラス名を変えることで画像を変えられると良いのですが、 でもどうしても上手く行きません。どうぞどなたかお助け下さい。 ********HTML********* <div class="dialog"> <div class="header"><span class="taiken"></span> <div class="c"></div> </div> <div class="body"> <div class="c">テストテスト</div> </div> <div class="footer"> <div class="c"></div> </div> </div> ******** CSS ******** .dialog { width:698px; } .dialog .header .c, .dialog .footer .c{ font-size:1px; /* ensure minimum height */ height:20px; } .dialog .header span.taiken{ background-color: transparent; background-image: url(../pic/head_r1_c1.gif); background-repeat: no-repeat; background-position: 0px 0px; height: 37px; } .dialog .header .c{ background-color: transparent; background-image: url(../pic/head_r1_c2.gif); background-repeat: no-repeat; background-position: right 0px; height: 37px; } .dialog .body{ background-color: transparent; background-image: url(../pic/body_r2_c1.gif); background-repeat: repeat-y; background-position: 0px 0px; } .dialog .body .c{ background-color: transparent; background-image: url(../pic/body_r2_c2.gif); background-repeat: repeat-y; background-position: right 0px; } .dialog .footer{ background-color: transparent; background-image: url(../pic/footer_r3_c1.gif); background-repeat: no-repeat; background-position: 0px 0px; } .dialog .footer .c{ background-color: transparent; background-image: url(../pic/footer_r3_c2.gif); background-repeat: no-repeat; background-position: right 0px; } 宜しくお願いいたします。

  • HTML
  • 回答数11
  • ありがとう数15

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

  • ベストアンサー
  • kuzumiHK
  • ベストアンサー率72% (132/183)
回答No.5

No.1です。 タイトル部分はgoldfoxさんの方法がよいと思います。 divと違い、h1やpタグは、ブラウザが適宜marginとpaddingを設定していますので、下記のようなスタイルを追加して0に定義しなおす必要があります。これでh1が表示されると思います。 *{ margin:0; padding:0; } <div class="dialog"> <div class="header taiken"> <h1 class="c"><img src="" alt="title"></h1> </div> もし、背景画像とタイトル画像の縦横サイズが違う場合は位置を調整する必要がありますので、その場合は、下記のスタイルを追加すれば、 タイトル画像の上と左の余白を調整できます。 div.taiken h1{ margin-left:0px; margin-top:0px; } margin-leftがタイトル画像の左側の余白 margin-topがタイトル画像の上側の余白 各0pxのところを変更します。 即興で書いたため、ブラウザ確認してません。 間違っていたらすみません。CSSは慣れるまで大変なので、 いろいろ試してがんばってみてください。

yuzumayu
質問者

お礼

出来ました~!! お手数なのにかみ砕いた説明をしていただき本当にありがとうございます。調整する部分もよく分かりました。 「h1やpタグは、ブラウザが適宜marginとpaddingを設定していますので、下記のようなスタイルを追加して0に定義しなおす必要があります。」なるほどです。 勉強不足ですみません。本当にありがとうございます。

その他の回答 (10)

  • DrFell
  • ベストアンサー率55% (305/551)
回答No.11

yuzumayu 様 いいねぇ。90点、合格ってところかな。heightいらない。あと、好みだけど、classもdiv{ }でOK。最初はclass付けないで使いまわす練習した方が上達早いよ。本当はほっとくつもりだったんだけど、なんか、採点しろオーラを感じてしまいました。 今回わかったと思うけど、世の中には間違った記述や、管理人自身もわかっていないのに、html講座やcssのハウツーやってる所がいっぱいあります。もう、見分けはつくよね?そういうところはアイデアだけ見習い改良して使いましょう。 唯一正しいのは仕様書で、和訳もでています。正しいことを知りたい時は、仕様書を確認すること。が、正しいのを100%表現するブラウザは今のところでていません。一番普及しているには正しくない率がもっとも高いブラウザです。ので、あまり正しさにこだわってもいられないのですが現実です。だから、ますます、パズルっぽくなります。 インラインとブロックは違うらしいけど、なんかよくわからないと思います。でも、かなり性格が全然違うのでちょっとあそんでみてね。1つづつ、試してみてね。なんとなくでもわかれば今はいいです。 htmlの準備 小さなテーブルを10こ(コピペでいいから、2×2段程度<table>~</table><table>~</table>……)用意して並べてください。P要素にそこそこの文章を用意してください。pの中にリンクも少し入れてください。 css側で 1.p要素を罫線で囲む 2.それをbottomだけにする 3.p要素をインラインに変えてみる。(display:inline;) 4.tableをインラインに変えてみる。 5.リンクをブロック要素に変えてみる。(display:block;) さぁ、難題 6.問題imgはどっちだと思う?(調べる前に考えてみてね) 最後に、数々の失礼をお許しください。では、css楽しんで征服?してください。ごきげんよう。

yuzumayu
質問者

お礼

ありがとうございます!! うれしいです! すっごく「採点してください」オーラ出してました! そして、おっしゃる通り本当にこの短期間で色々な説明サイトの「ちょっとこれは違うかも」感が分かるようになった気がします。 新たな課題までありがとうございます。 いま、まだ分かっていません。でも、もう少し(調べず)考えます。 何とか克服したいです。

  • kuzumiHK
  • ベストアンサー率72% (132/183)
回答No.10

厳密に書こうと思えばDrFellさんの書き方が正しいので、 スタイルに興味をもたれたら、ぜひこれから書き方にもこだわってみてください。 まだまだ、スタイルシートの世界は、CSSには精通していても、CSS2の仕様で十分デザイン的にも完成していると言い切れるようなデザイン音痴なスタイルマスターさんばかりなので、クライアントを納得させられるような微妙なデザインの違いまで理解できて、なおかつCSSにも精通しているという人が、全般的に不足しています。そのため、デザインから入って、CSSに興味を持たれるとチャンスが多くありそうです。 CSS2は(ブラウザの実装の問題を除いても)デザインにこだわるにはまだまだ不備の多い仕様ですが、CSS3に期待しつつ、デザインにもこだわれるスタイルマスターがじゃんじゃん増えるといいと思います。 >pはインライン要素。 書き間違いだと思いますが、Pはブロック要素?

yuzumayu
質問者

お礼

おそらく、私へのトラップです。 今回は私も気がつきました(Nine-nineさんオススメのサイトを読んで) pはブロック要素!ですよね?DrFellさん! なんだか、高校の時の間違い探しテスト問題をしているようです(笑) 私のわかりにくーいcssの修正をお助け頂き本当にありがとうございます。 一つを表現するにも本当に色々なやり方があるものという事が分かったのも今回の勉強です。 皆さんのように本当に無駄のない正しいコードを作れるようになれたら・・かっこいいです。 道は長いですが、がんばります。

  • Nine-nine
  • ベストアンサー率49% (25/51)
回答No.9

cssとhtmlはセットのものなので、htmlの事もわかっていないと思って、真っ白な気持ちで見てください。 http://www.kanzaki.com/docs/html/lesson1.html 続いて http://www.kanzaki.com/docs/html/htminfo17.html でワンセットです。ここが一番お奨めですが、ちょっと固い感じでとっつきは悪いです。でも、簡単で正確です。興味があれば、その上の、http://www.kanzaki.com/docs/htminfo.htmlアタリをおさえれば理念はばっちり学べます。 他にもいろいろお奨めサイトはあるのですが、ごく一部間違っていたりになり、安心してお奨めとなると上のサイトですね。例えば今回の解答者の方にも一部間違っていたりと、わざと?の方も居られる様ですがね。 理想と現実はちょっと違います。他の方もおっしゃってますが、初期値の違いとプログラムミス、過去のブラウザにどうあわせるかなど、落とし穴はいっぱいあります。はまりやすいのはブロック・インラインの違いとブロック要素の大きさの解釈、フロートの解除かな。 まぁ、基本はおさえて現実とおりあってだましだましってかんじですね。 がんばってください。

yuzumayu
質問者

お礼

ご丁寧なご回答ありがとうございます。 いま、順番に理解に務めています。 まだ、全部は読めていませんが、私は確かに見栄えをつくることに振り回されて「なんのために」が完全に抜け落ちていたのが確認出来ました。 基本を押さえれば自然と無駄なコードが無くなるのが少し分かりました。 目の前の山は大きいですが、お助けいただきながらもこの攻略できる感がいいですね!楽しいです。 まずはおっしゃっていただいた内容の理解にがんばります!!

  • DrFell
  • ベストアンサー率55% (305/551)
回答No.8

残念ですが違います。 <div><h1>記事のタイトル</h1><p>記事の中身</p></div> htmlは上だけです。 ヒントはdivにしかbackgroundはつかないものではない。 h1はブロック要素。 pはインライン要素。 h1は見出しを表すタグ pは段落を表すタグ。 divは見出しなど構造的意味のないブロック要素にしかたなくつけるタグ。 spanは段落などの構造的意味のないインライン要素にしかたなくつけるタグ。 つまり、divに付けられるプロパティはh1にも付けられる。無駄にdivを付ける必要はない。無駄にclassを付ける必要もない。 私なら、上のhtmlでh1に元ヘッダー部分の画像を、divの下に元フッター部分の画像を、あて、中間部分は同じ色のカラーコードに。

yuzumayu
質問者

お礼

出来ました~!! 今度こそあってます???あってます?? <div class="taiken"> <h1>記事のタイトル</h1> <p>記事の中身</p> <p>記事の中身</p> <p>記事の中身</p> </div> h1 { background-image: url(../pic/maru-top.gif); background-repeat: no-repeat; height: 37px; } .taiken{ background-image: url(../pic/maru-foot.gif); background-repeat: no-repeat; height: 20px; background-position: left bottom; width: 698px; background-color: #FFFFCC; }

  • Nine-nine
  • ベストアンサー率49% (25/51)
回答No.7

私もDrFellさんのようにすると思います。リキッド幅なら違いますがね。 勉強の仕方間違っていますよ。cssを勉強してタイトルにh1やh2をなぜつけるのか?って聞く人はcssの記述だけどこかからコピペすることを勉強していると言い張る人です。 cssにとって、角丸は飾りでしかありません。h1やdivにつく飾りです。cssにとって重要なのは、文章が構造化されていることです。まず、構造と見た目の分離に触れている入門者用のサイトを一かじりされると、目がさめるのでは?

yuzumayu
質問者

お礼

勉強の仕方間違っていますよね。 どのように手を着けて良いのか分からず、実際困っています。 本やサイトで自分のしたいことに近いものを見つけて猿まねのようにつくって、そこから一生懸命意味を解析している状態です。 もし、よければ「構造と見た目の分離に触れている入門者用サイト」でオススメのものがございましたら教えていただければ幸いです。

  • DrFell
  • ベストアンサー率55% (305/551)
回答No.6

本気なら、基本を学びましょう。私なら、見本のサイトのような見た目にどうしてもしたいなら <div><h1></h1><p></p></div> にしますね。あんなややこしいことすげーって感じ。 ちなみに、見出しの大きさが決まっているなら<h1></h1>だけで済ませます。

yuzumayu
質問者

お礼

出来ました!すごい!簡単ですね。 色々調べておっしゃっている意味が今やっと分かりました。 角丸のタイトル部分を枠ごとに変えて全体を角丸線で囲みたいので <div class="top"><h1>記事のタイトル</h1></div> <div class="middle"><p>記事の中身</p></div> <div class="bottom"><p></p></div> .top{ width:698px; background-image: url(../pic/maru-top.gif); background-repeat: no-repeat; background-position: bottom; height: 37px; } .middle{ width:698px; background-image: url(../pic/maru-body.gif); background-position: center; } .bottom{ width:698px; background-image: url(../pic/maru-foot.gif); background-repeat: no-repeat; background-position: top; height: 20px; } というようなことですよね??おっしゃっているものとあっていますでしょうか?

  • DrFell
  • ベストアンサー率55% (305/551)
回答No.4

いやぁ、いいかげんなお礼をありがとう hnとはh1・h2・h3のことだよん。 で、インラインを調べればアウトラインなんてないってわかるはずなんだけど。 こぴぺだけしてたら、使っちゃいけない、簡単に思えるものに手をだすんだよねぇ。 勉強する気なんてないんだろぅ? 貴重なアドバイス、ははは、便利な言葉だよねぇ

yuzumayu
質問者

お礼

申し訳ありませんが、本気です。 本気で分からないなりに調べておりました。

  • goldfox
  • ベストアンサー率49% (123/249)
回答No.3

難しく考える理由は何ですか? 現状(.header)の画像を変えたいだけなら、 .dialog .header{ background:transparent url(rc_r1_c1.gif) no-repeat 0px 0px; } このrc_r1_c1.gifを別の画像にすればいいだけですよ。 この上に別の画像を「重ねたい」(例えばタイトル画像を載せたい)なら <div class="c"><img src="" alt="title"></div> と、<div class="c"></div>の中に書く必要があります。 文法的には <h1 class="c"><img src="" alt="title"></h1> のほうがいいかもしれません。(余白などはスタイルシートで調節)

yuzumayu
質問者

お礼

ありがとうございます! いくつもの角丸を1ページに載せたくて 私もheader_1,header_2といったように画像を変更したdivを増やそうかと思ったんですが、 そうすると .dialog .header .c{ background-color: transparent; background-image: url(../pic/head_r1_c2.gif); background-repeat: no-repeat; background-position: right 0px; height: 37px; } などもheader_1,header_2の数だけ増やさないといけなくなるのかなと思い、考えが難しい方に方向に進んでおりました。 教えていただいた<div class="c"><img src="" alt="title"></div>という方法は全く思いつきませんでした。 これだとaltもつけられるし最高です。 ただ、やってみたところ<div class="c"><img src="" alt="title"></div>は 若干画像がずれるものの、タイトルにしたい画像は出ますが <h1 class="c"><img src="" alt="title"></h1> の場合は希望の画像が表示しないのです。 おそらくcss側の調整が出来てないからだと思うのですが・・どこをさわったら良いのか分かりません。 css側の調整を教えていただけますでしょうか?お手数お掛けして申し訳ありません。 またh1にするのはなぜですか?勉強不足で大変申し訳ありませんが、お教えいただければ幸いです。

  • DrFell
  • ベストアンサー率55% (305/551)
回答No.2

質問の意味がよくわからないのですが、固定幅でしたら、コーナー罫は画像2つでできないですか?無駄にdiv付けすぎなのでは?cssは物理レイアウトの翻訳ではうまくいきませんよ。 これをアレンジして、左上の画像(タイトル部分にする)のみを枠によって変えたいと思っています。<span class="taiken"></span>のクラス名を変えることで画像を変えられると良いのですが、 ここの意味がわからないのですが、タイトルなら、hnに画像をいれればすむ話では?spanって、構造的意味のないインライン要素ですから、画像にはふさわしくない気がします。インライン要素、アウトライン要素のこと理解されているのでしょうか?

yuzumayu
質問者

お礼

すみません。今回初めて角丸をつくってみるのに参考にしたサイトがこの方法で、私にはわかりやすかったのでその方法でアレンジしようとしておりました。 <span class="taiken"></span>にしたのは、<div class="header">をさら細分化する方法がわからず、これ以上divを増やすのもどうかと思い、いろいろサイトを見てspanが使えるのかしらと思ったからです。 勉強不足で申し訳ありません。hn要素、インライン要素、アウトライン要素については本当に理解不足です。これからしっかり勉強させていただきます。貴重なアドバイスありがとうございました。

  • kuzumiHK
  • ベストアンサー率72% (132/183)
回答No.1

左上の背景画像をそのままタイトルにするのであれば、 taikenとheaderと同じdivに入れて変更するのがよさそうですね。 ただしこの場合はタイトルにaltを追加することができないので、 背景画像と別にしたほうがいいかもしれません。 <div class="dialog"> <div class="header taiken"> <div class="c"></div> </div> <div class="body"> <div class="c">テストテスト</div> </div> <div class="footer"> <div class="c"></div> </div> </div> <div class="dialog"> <div class="header taiken2"> <div class="c"></div> </div> <div class="body"> <div class="c">テストテスト</div> </div> <div class="footer"> <div class="c"></div> </div> </div> .dialog { width:698px; } .dialog .header .c, .dialog .footer .c{ font-size:1px; /* ensure minimum height */ height:20px; } .dialog .header{ height: 37px; background-color: transparent; background-repeat: no-repeat; background-position: 0px 0px; } .dialog .taiken{ background-image: url(../pic/head_r1_c1.gif); } .dialog .taiken2{ background-image: url(../pic/taiken2.gif); } .dialog .header .c{ background-color: transparent; background-image: url(../pic/head_r1_c2.gif); background-repeat: no-repeat; background-position: right 0px; height: 37px; } .dialog .body{ background-color: transparent; background-image: url(../pic/body_r2_c1.gif); background-repeat: repeat-y; background-position: 0px 0px; } .dialog .body .c{ background-color: transparent; background-image: url(../pic/body_r2_c2.gif); background-repeat: repeat-y; background-position: right 0px; } .dialog .footer{ background-color: transparent; background-image: url(../pic/footer_r3_c1.gif); background-repeat: no-repeat; background-position: 0px 0px; } .dialog .footer .c{ background-color: transparent; background-image: url(../pic/footer_r3_c2.gif); background-repeat: no-repeat; background-position: right 0px; }

yuzumayu
質問者

お礼

まさにまさに私が知りたかった内容です!!そして出来ました! HTMLにしてもCSSにしても正確にどのように書けば良いのか分からなかったので、本当に助かりました。 <div class="header taiken">のように書けるんですね。 たしかに、ただの角丸ではなく、角丸の一部をタイトルのように扱うのであれば、altを入れられる状態にしたほうが良いですね。 そうするとgoldfoxさんが教えて下さっている<h1 class="c"><img src="" alt="title"></h1>が良いということですよね。 本当にありがとうございました!!まだまだがんばって勉強します。

関連するQ&A

  • CSSで角丸テーブル

    CSSでDIV要素を使って入れ子し、角の丸いテーブルを作っているのですが、なぜか誤差が出てしまいます。 CSSのソースは次のようなものです。 table(2).gifは角丸テーブルの画像です 画像サイズ:横440px 縦11px .box-center-start { width: 440px; background: url(image/table.gif); background-repeat: no-repeat; } .box-center { width: 440px; background-color: white; margin: 20px 10px 20px 8px; float: left; } .box-center2 { width: 440px; background-color: white; padding: 0px 10px 10px 10px; border-right: 1px solid gray; border-bottom: 1px dashed gray; border-left: 1px solid gray; } .box-center3 { width: 440px; background-color: white; padding: 10px 10px 0px 10px; border-right: 1px solid gray; border-left: 1px solid gray; } .box-center-end { width: 440px; background: url(image/table2.gif); background-repeat: no-repeat; } このように記述し、HTMLに <DIV class="box-center"> <DIV class="box-center-start"></DIV> <DIV class="box-center2"> ~内容 </DIV> <DIV class="box-center3"> ~内容 </DIV> <DIV class="box-center-end"></DIV> と打ってもなぜか綺麗に表示されません。 クラス「box-center-start(end)」の下に、少し余白が入ってしまうのです。(10pxほどの) 何方か助言お願いしますm( _ _ )m

  • 文字の両側に画像を配置するCSSのやり方

    ●AAAAA● ●BBBBB● ●CCCCC● 上記のように文字の両側に●画像をCSSにて配置したいのですが。 HTML <div class=R> <a href=".html">AAAAA</a> <a href=".html">BBBBB</a> <a href=".html">CCCCC</a> </div> CSS div.R a { background-image: url("●.gif"); background-repeat: no-repeat; background-position: left center; margin-right: 12px; padding-left: 7px } この状態では、左に●は表示されるます。 もうひとつ重ねればとおもい <div class=R>の中に<div class=R2>なるものを配置し、 div.R2 a { background-image: url("●.gif"); background-repeat: no-repeat; background-position: right center; margin-left: 12px; } を重ねてみたんですが、うまくいきません。 右にも表示させてい場合は、どのような記述にすれば表示されるのでしょうか?

    • ベストアンサー
    • 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で3分割した背景画像を配置したいけど隙間が出来てしまう?

    初めて質問させていただきます。 当方はCSS初心者です。 画像(グラデーションのある角丸四角枠)を3分割し、それを背景画像として配置したいのですが、WinIE6などで表示するとどうしても画像に隙間ができてしまうのです。 IE7、FireFoxでは無事に希望通りに表示されています。 【HTML】 <div id="wrapper"> <div class="top"></div> <div class="middle"></div> <div class="bottom"></div> </div> 【CSS】 #wrapper{ width:680px; height:auto; border:0 auto; padding:0; } .top{ width:650px; height:10px; background-image:url(img/01.gif); background-position:top center; background-repeat:no-repeat; margin:0 auto; padding:0; } .middle{ width:650px; background-image:url(img/02.gif); background-repeat:repeat-y; margin:0 auto; padding:0; } .bottom{ width:650px; height:13px; background-image:url(img/03.gif); background-repeat:no-repeat; background-position:bottom center; margin:0 auto; padding:0px; } といった感じで、ざくっとwrapperの中に背景画像をセンターで敷きたいのです。 .topと.middleの間には隙間は出来ないのですが、.middleと.bottomの間に数pxの隙間が出来てしまうのです。 制作環境はDreamweaver8、MAC/OSXですが、動作確認はWin/XPでも行っています。 何卒ご教示下さい。

  • CSS IE6でのabsoluteズレ

    フッターがブラウザに合わせて下部に固定するようにしていて フッターは横幅100%にしています。 他のブラウザでは全く問題ありませんが、IE6で見ると右にかなりずれて表示されてしまいます。 以下HTMLソース-------------------------- <div id="footer"> <div class="foot"><a title="トップにもどる" href="#top"><img src="common/images/pagetop.gif" alt="ページTOP" /></a></div> </div> 以下CSSソース-------------------------- #footer{ position:absolute; bottom:0px; height:20px; width:100%; background-image: url(../images/footbg.gif); background-repeat: repeat-x; } #footer .foot{ margin-left: auto; margin-right: auto; width:950px; } #footer .foot img{ float: right; padding-top:1px; } position:absolute;をとると下固定ではなくなりますが、ちゃんと真ん中に表示されます。 改善策をご教授願います。 よろしくお願いいたします。

    • ベストアンサー
    • CSS
  • 本当に困っています。html/cssについて。

    html/cssについて。画像が表示されません。 html/cssを手打ちしてコーディングしています。 一部の画像がどうしても表示されず、困っています。 まず、背景画像はJavaScriptで5枚の画像からランダムで表示。 次に帯状のヘッダ画像(top_header.gif)を最上部に横方向にリピートして表示。 同じくフッダ画像(top_footer.gif)を最下部に横方向にリピートして表示。 そして左上にホームボタン画像(TOP_s1.gif)を配置。 次が問題になっている箇所です。 ボタン画像(button_r1_c1_s1.gif[width 136px heignt 36px])を上から0px,右から500pxの位置 に、ブラウザの大きさに関わらず常に表示される(fixed)ようにしたいのですが、 画像が表示されなくなります。ちなみに透明のままですが、ブラウザで確認するとタブの遷移はできます。 これもちなみにですが、上から0px,右からも0pxの位置に指定すると表示されます。 右から0pxだと表示されるが、それ以外だと表示されません。他の画像が邪魔しているのなのか、原因がわかりません。 同様にフッダ画像(top_footer.gif[width 1681px height 42px])も表示されていません。 これはheightを1000pxくらいで指定すれば、なぜか表示されるのですが、邪道な気がしています。 どなたかボタン画像(button_r1_c1_s1.gif)とフッダ画像(top_footer.gif)の表示方法をご指導願います。 よろしくお願いします。 【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 id="TOP_s1"><a href="#"></a></div> <div id="News"><a href="#"></a></div> </div> </body> 【CSS】 @charset "utf-8"; /* CSS Document */ body{ padding-top: 0; padding-right: 0; padding-left: 0; margin-top: 0; margin-right: 0; margin-left: 0; overflow-y: hidden; overflow-x: hidden; } #container{ height:100%; width: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{ <!-- 問題箇所2 --> background-image: url("../image/top_footer.gif"); height: 42px; <!-- 1000pxくらに表示すると表示される --> bottom: 0; background-position: left bottom; background-repeat: repeat-x; background-attachment:fixed; z-index: 2; } #TOP_s1 a { background-image: url("../image/TOP_s1.gif"); height: 194px; width:332px; background-position: left top; background-repeat:no-repeat; background-attachment: scroll; position:absolute; z-index: 3; top:0; left: 0; } #TOP_s1 a:hover { background-image: url("../image/TOP_s2.gif"); } #News a { <!-- 問題箇所1 --> background-image: url("../image/button_r1_c1_s1.gif"); height: 136px; width:36px; background-position: right top; background-repeat:no-repeat; background-attachment: fixed; position:absolute; z-index: 3; top:0px; right: 500px; <!-- 500pxを0にすればなぜか表示されます --> }

    • ベストアンサー
    • CSS
  • クリックした際にCSSが変更できない jQuery

    jQueryについて詳しい方教えていただけませんでしょうか? クリックをした際、スライドさせるように作っているのですが、同時にspanのCSS変更(arrowFD→arrowFR)もやりたいのですがなぜかうごきません・・・ <jQuery> $(window).load(function(){ $('#faq .answer').not(':first').hide(); $('#faq .question').click(function() { if($(this).next('.answer').is(':visible')) { $(this).next('.answer').slideUp(300); $("span.arrowFD").html('<span class="arrowFR"></span>'); //★ホントは、CSSだけ変更したい } else { $(this).next('.answer').slideDown(300).siblings('.answer').slideUp(300); } }); });//]]> <CSS> .question { padding:5px; font-weight:500; font-family: メイリオ; font-size:14px; border:1px solid #ddd; background:#eee; cursor: pointer; } .answer { padding:25px; font-family:MS UI Gothic; font-weight:500; font-size:13px; border:1px solid #ddd; } /* 三角矢印を前(Front)に(右向き:Right)でつける */ .arrowFR { position:relative; top:0; left:0; padding-left:18px; } .arrowFR:before { content: ""; position: absolute; top: 3px; left: 2px; border-top: 7px solid transparent; border-bottom: 7px solid transparent; border-left: 12px solid #000000; } /* 三角矢印を前(Front)に(下向き:Down)でつける */ .arrowFD { position:relative; top:0; left:0; padding-left:18px; } .arrowFD:before { content: ""; position: absolute; top: 3px; left: 2px; border-left: 7px solid transparent; border-right: 7px solid transparent; border-top: 12px solid #000000; } <HTML> <div id="faq"> <div class="question" id="tenmetsu"> <span class="arrowFD"></span> <span style="font-weight:bold">|</span> 香川真司 </div> <div class="answer">Answer 01<br />Answer 01<br />Answer 01<br />Answer 01<br /></div> <div class="question"> <span class="arrowFR"></span> <span style="font-weight:bold">|</span>  長友佑都 </div> <div class="answer">Answer 02<br />Answer 02<br />Answer 02<br />Answer 02<br /></div> <div class="question"> <span class="arrowFR"></span> <span style="font-weight:bold">|</span> 本田圭佑 </div> <div class="answer">Answer 03<br />Answer 03<br />Answer 03<br />Answer 03<br /></div> </div>​

  • CSSで謎の空白ができてしまいます。

    最近CSSでサイトの構築をしているのですが↓のように途中で navi(パンくずリンク)とmenu&main(メニューとメイン記事)の間に空白が出来てしまいます。 menuとmainにmargin: 0px;とpadding 0px;をしても駄目でした。 どうすれば良いかご指導お願いします。 http://blog-imgs-16.fc2.com/t/e/s/testestes0101/test.png 以下ソースです。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title></title> <style type="text/css"> <!-- body{/* 全体の要素 */ margin: 0px; color: #555555; background-color: #E3E5E6; } .layout{/* 全体を決める要素 */ margin: 0px auto 0px auto; width: 850px; } .header{/* ヘッダー部分 */ padding: 35px 0px 0px 50px; height: 65px; background: url("title_bg.png"); background-repeat: no-repeat; } .navi{/* サイト内のナビゲーション */ height: 40px; padding: 13px 0px 0px 60px; font-size: 14px; background: url("menu_bg.png"); background-repeat: no-repeat; } .navi a:link{/* ナビゲーション内のリンクの色 */ color: #555555; } .navi a:visited{/* ナビゲーション内の訪問済みリンクの色 */ color: #555555; } .menu{/* メニュー部分 */ background-color: #FFFFFF; width: 215px; float: right; } .main{/* メイン部分 */ background-color: #FFFFFF; width: 635px; float: right; } .footer{/* フッター部分 */ background-color: #FFFFFF; clear: right; height: 40px; } --> </style> </head> <body> <div class="layout"> <div class="header"> <a href="index.html"><img src="title.png" border="0"></a> </div> <div class="navi"> <a href="index.html"> トップページ </a> </div> <div class="menu"> </div> <div class="main"> </div> <div class="footer"> </div> </div> </body> </html> ※タイトル画像は消してあります。

  • ドロップダウンメニューについて

    apycomでhttp://apycom.com/menus/1-yellow-green.htmlの ドロップダウンメニューをダウンロードして設定しているのですが、サブメニューのリンク文字の変更方法が分からなくて困っています。 サブメニューの背景を変更したのでリンクの文字をもっとハッキリ見える色に変更したいです。 マウスが乗った時の文字の色も変更できません。 昨日から色々やってるのですがどうしても解決できないのでお聞きしました。 よろしくお願いします。 /** ********************************************* * Prototype of styles for horizontal CSS-menu * @data 30.06.2009 ********************************************* * (X)HTML-scheme: * <div id="menu"> * <ul class="menu"> * <li><a href="#" class="parent"><span>level 1</span></a> * <ul> * <li><a href="#" class="parent"><span>level 2</span></a> * <ul><li><a href="#"><span>level 3</span></a></li></ul> * </li> * </ul> * </li> * <li class="last"><a href="#"><span>level 1</span></a></li> * </ul> * </div> ********************************************* */ /* menu::base */ div#menu { height:41px; background : transparent url(main-bg.png) repeat-x scroll 0% 0%; } div#menu ul { margin: 0; padding: 0; list-style: none; float: left; } div#menu ul.menu { padding-left: 30px; } div#menu li { position: relative; z-index: 9; margin: 0; padding: 0 5px 0 0; display: block; float: left; } div#menu li:hover >ul { left: -2px; } div#menu a { position: relative; z-index: 10; height: 41px; display: block; float: left; line-height: 41px; text-decoration: none; font: normal 12px Trebuchet MS; } div#menu a:hover, div#menu a:hover span { color: #fff; } div#menu li.current a {} div#menu span { display: block; cursor: pointer; background-repeat: no-repeat; background-position: 95% 0; } div#menu ul ul a.parent span { background-position:95% 8px; background-image : url(item-pointer.gif); } div#menu ul ul a:hover.parent span { background-image : url(item-pointer-mover.gif); } /* menu::level1 */ div#menu a { padding: 0 10px 0 10px; line-height: 30px; color : rgb(56, 56, 56); } div#menu span { margin-top: 5px; }/**@replace#1*/ div#menu li { background : transparent url(main-delimiter.png) no-repeat scroll 98% 4px; } div#menu li.last { background: none; } /* menu::level2 */ div#menu ul ul li { background: none; } div#menu ul ul { position: absolute; top: 38px; left: -999em; width: 163px; padding: 5px 0 0 0; background : rgb(179, 221, 81) none repeat scroll 0% 0%; margin-top:1px; } div#menu ul ul a { padding: 0 0 0 15px; height: auto; float: none; display: block; line-height: 24px; color : rgb(56, 56, 56); } div#menu ul ul span { margin-top: 0; padding-right: 15px; _padding-right: 20px; color : rgb(56, 56, 56); } div#menu ul ul a:hover span { color: #fff; } div#menu ul ul li.last { background: none; } div#menu ul ul li { width: 100%; } /* menu::level3 */ div#menu ul ul ul { padding: 0; margin: -38px 0 0 163px !important; margin-left:172px; color: #FFFFFF; } /* colors */ div#menu ul ul ul { background: rgb(41,41,41); } div#menu ul ul ul ul { background: rgb(38,38,38); } div#menu ul ul ul ul { background: rgb(35,35,35); } /* lava lamp */ div#menu li.back { background : transparent url(lava.png) no-repeat scroll right -44px !important; background-image : url(lava.gif); width: 13px; height: 44px; z-index: 8; position: absolute; margin: -1px 0 0 -5px; } div#menu li.back .left { background : transparent url(lava.png) no-repeat scroll left top !important; background-image : url(lava.gif); height: 44px; margin-right: 8px; } 【html】 <div id="menu"> <ul class="menu"> <li><a href="#"><span>Home</span></a> <li><a href="#" class="parent"><span>商品紹介</span></a> <ul> <li><a href="#"><span>コンクリート</span></a> <li><a href="#"><span>木材</span></a> <li><a href="#"><span>アクセサリー</span></a> <li><a href="#"><span>砂</span></a> <li><a href="#"><span>フード</span></a>

  • CSSでの画像メニューの設定について

    現在CSSの勉強中です。 外部CSSで画像を使用してリンクメニューを作ったのですが、 やり方があっているか確認をお願いしたいのですが。 off時の画像(白)、ページのin時の画像(赤)、hover(青)の画像を用意しています。 CSS部分▼ .navi01 a{ width:102px; height:43px; background-image:url(common/img/navi_top_off.gif); background-repeat:no-repeat; } .navi01_on a{ width:102px; height:43px; background-image:url(common/img/navi_top_on.gif); background-repeat:no-repeat; } .navi01 a:hover{ width:102px; height:43px; background-image:url(common/img/navi_top_hover.gif); background-repeat:no-repeat; } .navi01_on a:hover{ width:102px; height:43px; background-image:url(common/img/navi_top_hover.gif); background-repeat:no-repeat; } HTML部分▼ <li class="navi01_on"><a href="index.html" title="トップページ"><span class="none">トップページ</span></a></li> <li class="navi02"><a href="work.html" title="仕事内容"><span class="none">仕事内容</span></a></li> CSSの講座のページなどを見ると、設定がもうすこし少なくても うまく動いていたりして、無駄な部分があるのではと思っています。 今の私の知識ではどこが悪いのか分からないので、 教えて頂けると幸いです。 (もし良い講座のページ、本がありましたら教えて頂ければと思います。) 宜しくお願い致します。

    • ベストアンサー
    • CSS