• 締切済み

HTMLとCSSでの画像位置について教えてくださ

こんにちは。 アメブロと言うブログでデザインとカスタマイズを依頼されました。 希望はヘッダー画像そのものにリンクを張りたいのですが、HTML編集機能がありません(CSSのみ)。 プロフィール欄のみHTML編集ができるので、そこに下記のHTMLソースを書き、画像にリンクを張りました。 <div style="position:absolute;top:-320px;left:15px;"><a href="http://ameblo.jp/vice-president"><img border="0" src="http://stat.ameba.jp/user_images/da/d2/10014814202.jpg" width="700" height="366"></a> </div> ※top:-10px-プロフィールのあるサイドバーの上端からの位置  left:0px-サイドバーの左端からの位置 IEではきちんと表示されたのですが、firefoxでは画像位置が崩れてしまいます。どのように記述したらよいでしょうか? よろしくお願いします。

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

みんなの回答

  • quads
  • ベストアンサー率35% (90/257)
回答No.3

> 現在はヘッダー画像にリンクを張っているのではなく、文字にリンクを張っているので崩れないようです。 >(私は画像自体にリンクを張りたいのですが、時間が限られていまして・・) 始め、あなたが示した方法は画像にリンクを張るものでした。 これはHTMLが弄れない以上、「強引な方法」でないと不可能なので、私が示したようになります。 文字(h1要素あたり)へのリンクで満足であれば、私の回答は一切無視していただいて結構です。 画像にリンクを張ることを実現したいのであれば、 本来は、より適切な指定にすべきですが、 検証する時間すらないというのであれば、#2の回答を参考にしてください。 ●もう一度言うと、 この質問をしたときの状態でHTMLは大丈夫です。(DTDとかXMLに反するのはここでは議論しない) 最初の状態で、スタイルシートだけ追記します。 div[id="wrap"] {padding-top:366px;} #freespace div[style] {top:10px !important;} これで少なくともFxでも最低限の表示は保証されるはずです。

  • quads
  • ベストアンサー率35% (90/257)
回答No.2

あなたが提示したソース中のURIに含まれるブログを拝見しましたが、既に実現されているのですか? それともまだ回答を待っているのでしょうか。 先ほどの状態で、IEでもFxでも実現する方法を教示します。 しかしながらこの発想は強引であり、通常はすべきではありません。 方針 ●IE6以前で理想どおり表示させるソースを書く ●IE6以前では正常にパースできない方法でスタイルシートを書く 前者の方法です。 提示されたtopプロパティ値で改めてください <div style="position:absolute; top:-320px; left:15px;"> <a href="$root_URI$"><img border="0" src="$image_URI$" width="700" height="366" alt="" /></a> </div> そして、トップページに適用されるCSSに対して、次のスタイルシートを記述してください。 div[id="wrap"] {padding-top:366px;} #freespace div[style] {top:10px !important;} ただし、確認していません。 質問文で書かれたようなdiv要素を追記したのであれば、id属性でも振ってくれればIEで検証しやすかったのですが。

domino21
質問者

お礼

quads様 ありがとうございます。 現在はヘッダー画像にリンクを張っているのではなく、文字にリンクを張っているので崩れないようです。 (私は画像自体にリンクを張りたいのですが、時間が限られていまして・・) これからquads様のソースで確認してみたいと思います。 検証しましたら、またこちらで報告させて頂きます。 本当にありがとうございます。

  • quads
  • ベストアンサー率35% (90/257)
回答No.1

HTMLが編集できない時点で致命的ですが。 そんな条件を前提にして、とりあえず実現させる方法を教示します。 あなたがHTMLに追加した記述 <div style="position:absolute;top:-320px;left:15px;"> <a href="$root_URI$"><img border="0" src="$image_URI$" width="700" height="366"></a> </div> これを以下に改めてください <div style="position:absolute; top:10px; left:15px;"> <a href="$root_URI$"><img border="0" src="$image_URI$" width="700" height="366" alt="" /></a> </div> そして、トップページに適用されるCSSに対して、次のスタイルシートを記述してください。 #wrap{padding-top:366px;} Firefox でしか確認していません。 これを記述することにより IE で崩れる可能性があります。 それを検証するには適用されるCSSを弄らないと手間がかかるので私はしません。 Firefox では Web Developer の Edit CSS および属性セレクタを用いて容易に操作できるので試しました。 示したように変更した場合に、Firefox 以外のブラウザで崩れるようであればその旨をお書きください。 ## 警告 http://blog.goo.ne.jp/oshietegoo/c/2fd47a0436464f7e861d622ad803e8ab # 禁止事項 - 個人情報の開示 質問文中の提示ソースに、個人情報の開示に繋がる可能性が見受けられるURIの記述があります。 私が回答してしまうと同時に、質問者は質問の削除ができなくなってしまいますが。

domino21
質問者

お礼

ありがとうございました。 確かにFirefoxでは綺麗に表示されましたが、IEで崩れてしまいました。 また、下記のコードでも試してみましたが、IEで崩れてしまいました・・。 <div style="position:relative;"><a style="position:absolute;top:-320px;left:15px;" href="​http://ameblo.jp/vice-president"><img​ border="0" src="​http://stat.ameba.jp/user_images/da/d2/10014814202.jpg"​ width="700" height="366"></a> </div> どちらでも綺麗に表示させる事は無理なのでしょうか? お解かりになりましたら、よろしくお願いします。

domino21
質問者

補足

補足です。 そうやら、IE7では綺麗に見ることが出来るようですが、IE6では崩れてしまうようです。 出来ればIE6でも見ることが出来れば良いのですが・・。 お解かりになりましたら、よろしくお願いします。

関連するQ&A

  • CSSで画像を同じ位置に重なり合わせるには?

    お世話になります。 2枚のTOP画像(一枚は差し替え可能なJPG、もう一枚はその画像の上に位置するフレーム枠のような役割を果たすGIF画像)をぴったり重ね合わせて配置したいと考えています。 調べたところz-indexという方法があるらしく、position:relativeしてtop,left指定でいろいろ試してみたのですが、上に重なる画像の分だけ、下部コンテンツに空きが出ます。(添付画像のような現象です) これはCMS化して画像を差し替える時のためにページなのですが、こういう現象をなくして普通のWebサイトページのように配置することはできないのでしょうか? 素人ゆえおかしな質問しているかもしれませんが、どうかご教授お願いします。 現時点のHTML/CSSはこんな感じです。 HTML--- <div id="contens"> <div id="top_img_a"> <p class="img_top"><img src="images/dammy_img02.jpg" alt="新規投稿ダミー画像" /></p> <p class="flame"><img src="images/new_entries_img_flame.gif" alt="新規投稿フレーム枠" /></p> </div> CSS---(本意ではありませんが、やむなくtop,left調整で位置を作っている段階です。) #top_img_a { width:900px; margin:0; padding:0; position:relative; top:0px; } .img_top { position:relative; z-index:1; top:0; left:25px; } .flame { position:relative; z-index:2; top:-216px; left:25px; }

    • ベストアンサー
    • CSS
  • HTML CSSを、教えてください。

    お世話になります。 HTMLを始めたばかりで、 超初心者ですので、ご教授いただけたらと思います。 以下の図のような感じに並べたいです。 バックグラウンドには、青色。 赤と緑の部分は、画像配置、 また、右の緑の画像の上に, オレンジのボタン配置を行いたいのです。 ただ、オレンジのボタン配置の仕方が、 なかなか出来ずにいます。 以下のHTMLとCSSには、 オレンジのボタンを入れずに、まず配置をしてみましたが…。 ただ、やはり右の緑の画像が、崩れてしまう感じも…。 オレンジのボタンを入れていただいた形で、 お願いできないでしょうか? (オレンジ画像 width=100 height=50 でお願いします。) 【 HTML 】 <div class="Red"><img src="img/Red.png" width="300" height="50" /> <div class="contents"> <div class="Color_Box"> <div class="Green01"><img src="img/Green01.png" width="200" height="100" /> </div> <div class="Green02"><img src="img/Green02.png" width="200" height="100" /> </div> </div> </div> </div> 【 CSS 】 div.Red{ background:url(img/Bule.png) 0 100% repeat-x; height:200px; margin-top:45px; text-align:center; } div.Color_box{ width:450px; height:100px; } div.Green01{ width:200px; padding-right:50px; float:left; } div.Green02{ width:200px; float:left; }

    • 締切済み
    • CSS
  • HTML、CSS が、なかなかうまくいきません。

    お世話になります。 HTMLを始めたばかりですので、 ご教授いただけたら幸いです。 以下の図のような感じに並べたいのですが、 なかなかうまい具合にいきません。 黄色は、全てボタンになります。 赤は、ボタンについた吹き出し部分となります。 上段の2つのボタンは、やや大きい感じのボタン。 下段の3つのボタンは、上段に比べて、少し小さい感じのボタンになります。 ボタンは、上段(A)と下段(B)で、 HTML と CSS は、分けようかと考えています。 【HTML】 <div class="Button"> <div class="contents"> <div class="Button_boxA clearfix"> <div class="Yellow_Btn_01"><img src="img/Yellow_Btn_01.png" width="200" height="75" /> </div> <div class="Yellow_Btn_02"><img src="img/Yellow_Btn_02.png" width="200" height="80" /> </div> </div> <div class="btn_boxB clearfix"> <div class="Yellow_Btn_03"><img src="img/Yellow_Btn_03.png" width="100" height="60" /> </div> <div class="Yellow_Btn_04"><img src="img/Yellow_Btn_04.png" width="100" height="65" /> </div> <div class="Yellow_Btn_05"><img src="img/Yellow_Btn_05.png" width="100" height="60" /> </div> </div> </div> </div> 【 CSS 】 div.Button{ width:600px; margin-top:20px; margin-right:auto; margin-left:auto; padding-right:25px; } div.btn_boxA{ width::500px; margin-left:auto; margin-right:auto; margin-bottom:10px; } div.low_btn_01{ width:200px; height:75px; margin-left:auto; margin-right:auto; margin-bottom:10px; float:left; } div.low_btn_02{ width:200px; height:80px; margin-left:auto; margin-right:auto; padding-left:25px; margin-bottom:10px; float:left; } div.btn_boxB{ width::500px; margin-left:auto; margin-right:auto; margin-bottom:10px; } div.low_btn_03{ width:100px; height:60px; margin-left:auto; margin-right:auto; margin-bottom:10px; padding-left:25px; float:left; } div.low_btn_04{ width:100px; height:65px; margin-left:auto; margin-right:auto; margin-bottom:10px; padding-left:25px; float:left; ] div.low_btn_05{ width:100px; height:60px; margin-left:auto; margin-right:auto; margin-bottom:10px; padding-left:25px; float:left; } 長ったらしくなってしまいましたが、 ご教授いただけたら、幸いです。 宜しくお願いします。

    • 締切済み
    • CSS
  • HTML・CSSタグの書き方教えてください!

    画像では見づらいのですが、HOMEの左側にボーダーがピンク色で表示されています。 このHOMEの左側のボーダーを消したい(又は見えなくする)タグを教えてください。 最初のリンクのところだけグループ化して, CSSに{border-left-style: none;}と加えてみたり、 .menu ul li a .first {border-left: none;}等してみたのですが、 変わらず…。 どういうタグを加えれば、左側のボーダーが見えなくなりますでしょうか? よろしくお願いいたします。 <HTML> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv= "content-style-type" content= "text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <link href="css/style.css"rel="stylesheet" type="text/css" /> </head> <body> <div id="wrapper"> <div id="header"> <h1> 作りかけページ </h1> <p>テストページ</p> </div><!-- header終わり --> <div class="menu"> <ul> <li><a href="#">HOME</a></li> <li><a href="#">サービス概要</a></li> <li><a href="#">会社概要</a></li> <li><a href="#">お問い合わせ</a></li> <li><a href="#">サイトマップ</a></li> </ul> </div><!-- menu終わり --> <div id="main"> <div id="contents"> ***コンテンツ*** </div><!-- contents終わり --> <div id="leftsidebar"> ***左サイドバー*** </div><!-- sidebar終わり --> </div><!-- main終わり --> <div id="rightsidebar"> ***右サイドバー*** </div><!-- sidebar終わり --> <div id="footer"> ***フッター*** </div><!-- footer終わり --> </div><!-- wrapper終わり --> </body> </html> <CSS> <style type="text/css"> * { margin: 0; padding: 0; } #wrapper{ width: 760px; /*全体の幅(#wrapper)を760pxの固定幅とする。 */ position: absolute;/*絶対位置*/ left: 50%;/*左端から右方向の位置を指定する */ margin-left: -380px;/*はみ出た半分を戻す */ } /*ヘッダー*/ #header{ width: 758px;/*ヘッダー部分の幅(#content)を758pxとする。*/ height: 200px; background-color:#ffd700; background-repeat: no-repeat; background-position: -50px -70px; text-align: right; border: solid 1px gray; } #header h1{ margin: 0; font-size: 30px; padding: 20px 10px 0px 0px; font-family:arial unicode ms; } #header p{ margin: 0; font-size: 1em; padding-right: 10px; margin-top: 8px; } /*ヘッダー終わり*/ /*body*/ /*menu部分*/ .menu {font-size:20px; height:30px; background-color:#0c907c; text-align:center; } .menu ul{ margin: 0; padding: 0; 760px; } .menu ul li{ float: left; list-style: none; margin: 0; padding: 0; } .menu ul li a{ display:block; width: 151.2px; line-height: 30px; border-left: solid 1px #FF3366; color:#ffffff; text-align: center; text-decoration: none; } .menu ul li a:hover{background-color: #99cc00} /*menu部分終わり*/ #contents{ width: 388px;/*コンテンツ部分の幅(#content)を388pxとする。*/ background-color:#0000FF; float: right;/* 右に配置 */ } #leftsidebar{ width: 166px; /*左サイドバー部分の幅を166pxとする。*/ background-color:#0000FF; float: left;/* 左に配置 */ } #main{ width: 574px; float: left;/* 左に配置 */ } #rightsidebar{ width: 166px;/*右サイドバー部分の幅を166pxとする。*/ background-color:#0000FF; float: right;/* 右に配置 */ } #footer{ width:760px; background-color:#FF3366; clear: both;/* float解除 */ height: 50px; }

    • ベストアンサー
    • HTML
  • HTMLでCSSでボーダーが表示されません。

    HTMLでCSSでボーダーが表示されません。 右サイドバー(right)の左にボーダーを表示させたいのですが、 画像のように文字を記述したところまでしかボーダーが表示されません。 ボーダーをfooterの上まで引きたいのですが、 わかる方いらっしゃいましたら回答宜しくお願い致します。 ■HTML <html> <body> <div id="wrapper"> <div id="header"></div> <div id="container"> <div id="left"></div> <div id="right"> <div id="right_title"></div> <div id="right_content"></div> </div> </div> <div id="footer"></div> </div> </body> </html> ■CSS #right { float: left; height: auto; } #right_title { } #right_content { border-left-width: 1px; border-left-style: solid; border-left-color: #000; }

    • ベストアンサー
    • HTML
  • CSSで 画像をかさねたい

    お世話になります。 CSSで 画像をかさねたいんです。 下になる画像を「背景」にして それで2つを重ねればいいのかと思いましたが、どうもうまくいきません。 CSSソースは .left{ width:182px; background:url(sideback.gif) float:left; } .left-midashi{ width:182px; text-align: center; } *「float:left」がはいっているのは、右隣にメインの枠があるからです HTMLは↓ <div class="left"> <div class="left-midashi"><img src="sidemanu-canner.gif"></div> </div> です。 初心者なので凡ミスかもしれませんが、自分ではよくわからなくなってしまいました。。。よろしくおねがいいたします。m(_ _"m)ペコリ

    • ベストアンサー
    • HTML
  • HTMLについてです!助けてください!

    今、HTML/Dreamweaverでウェブサイトを作っているのですが、分からないことがあって困っています。 画像の上に文字を重ねたいのですが、重ねたい位置にDreamweaverで置くと、左側に大きくずれてしまいます。 <div style="position: relative;"> <img src="○○○.jpg" width="○○○" height="○○○"> <div style="position:absolute; top:○○px; left:○○px; width: ○○px;"> ここに文章を入れます </div></div> このコードを使っているのですが、上記の通り、左にずれてしまいます。 説明が下手で申し訳ないのですが、下の写真を見てくだされば分かると思います。

  • アメブロcss 好きなところに画像をおく

    こんにちは。 アメブロでcssを使い、ブログの好きなところに画像をおこうと頑張ってます フリープラグインの方には、 <img id="miiko0822" src="http://stat001.ameba.jp/user_images/20130320/12/neko-voice-0624/b0/35/p/o0400040012465138166.png"> というコード。 miiko0822は反応させるIDです。他は画像URL。 cssのほうには #miiko0822{ position:fixed; top:50px;/*上からの位置*/ left:30px;/*左からの位置*/ } を下に追加。 画像は表示されているのですが、pxを変えてもそこから動きません。 貼付画像のところから。(猫のほうじゃなくて男の子のイラストのほうです) 合っているはずなんですが・・・ どうやったら指定の位置に行きますか?

  • CSSに関して教えてください。

    CSSで左列がサイドバーで右列がメインコンテンツの二段組レイアウトについて質問します。 ●要点 サイドバーには背景色が指定してあり、サイド、メインとも高さが可変(指定なし)とします。メインコンテンツの高さの変動に応じてサイドバーの高さも変化してサイドバーの背景色とメインコンテンツの高さが同じになるように変化させたいのです。 ---------- CSSソース ---------- body { text-align: center } #wrapper { width: 720px; margin: 0 auto; text-align: left; } #content { width: 720px; background: url("../img/content.gif") repeat-y; } #main { float: right; width: 540px; } #sidebar{ float: left; width: 180px; background: blue; } ---------- HTML ---------- <body> <div id="wrapper"> <div id="content"> <div id="main"> ・・・・・・・・・ </div> <div id="sidebar"> ・・・・・・・・・ </div> </div> </div> </body> CSSでcontentに背景画像(サイドバーの幅が青色の画像)を指定してrepeat-yとするとIE6ではメインコンテンツの高さに合せてcontentに指定した画像が繰り返されサイドバーの色がメインコンテンツの高さと揃います。Firefoxでは、メインコンテンツがサイドバーより高くなると揃わなくなります。contentに指定された画像が表示されてないようです。 どのようなことでもいいのでお教えください。手がかりがなく困っています。

    • ベストアンサー
    • HTML
  • 制作したHTMLとCSSがうまく表示されません・・

    3日間色々いじってますが、解決法がわからないため助けてください。 素人なもので、状況説明がわかりづらくてすいません。 WinVistaを使用して、無料テンプレート(配布元:http://pondt.com/内おすすめテンプレート左上 ビルガラス画像のものNo.18を使用)をKompozerで加工しました。 外部cssも使用してますが、フォルダからhtmlを開くと、IEでは正常に表示されますが、firefoxではうまく表示されません。 FFFTPでアップしたHPでは、IE・firefoxそれぞれ違った形に崩れてしまい、うまく表示されません。 (URL http://i.gmobb.jp/aki_enyce/) トップページはまだまともに表示されてますが、他ページが崩れています。 外部cssの一部を抜粋して記載します。 本当に困っています。どなたかお教えいただけますでしょうか。 よろしくお願い致します。 ≪CSS 各ページ共通部≫ div#wrapper{ margin: 0 auto; text-align: left; width: 100%; line-height: 1.8; } div#wrapBg{ border-top: 1px #dedede solid; background: url(../../../images/haikeimain.jpg) no-repeat top; } div#header{ width: 960px; height: 79px; margin: 0 auto; text-align: left; background: url(../../../images/haikeiheader.jpg) no-repeat top; } div#header h1{ float: left; width: 116px; margin: 0px 0px 0px 0px; padding: 0px 0 0 0px; } div#header h2{ float: left; margin-left: 30px; margin-right: 10px; padding-top: 20px; } div#footer{ text-align: center; margin-top: 30px; padding-top: 5px; padding-bottom: 5px; background-color: #D3B688; } ≪トップページ以外の共通ページ(ヘアカタログページを除く)≫ div.wrapBox{ width: 960px; margin: 0 auto; padding: 30px 0; } div#mainContents{ width: 700px; float: right; } /*---- hair catalog画像 ----*/ div#mainContents div.topicsBox{ float: left; margin-left: 20px; margin-bottom: 40px; } div#mainContents div.firstItem{ float: left; margin-left: 30px; margin-bottom: 40px; } /*---- map 画像 ----*/ div#mainContents div.mapBox{ background: url(../../../images/illure/map.png) no-repeat; width: 695px; height: 425px; } div#leftContents{ border-radius: 10px; -webkit-border-radius: 10px; -moz-border-radius: 10px; background: url(../../../images/baner/shiroki.gif) no-repeat top; width: 200px; float: left; padding: 0px; font-size: 15px; font-weight: bold; }

    • ベストアンサー
    • HTML

専門家に質問してみよう