• ベストアンサー

横スクロールバーを消して中央表示させる方法

いつもお世話になっております。 さきほど、画面サイズと背景写真について質問させていただいたものです。 教えていただいた結果、ひとまず背景に横1600pxの画像を使用することに致しました。 そこで、ためしに1枚絵の画像を背景として入れてみたのですが、案の定といいますか、、、 横スクロールバーが出てしまい、あげくに中央に表示されていませんでした。 ブラウザや画面のサイズにとらわれず随時中央表示にし、横スクロールが出ないようにする方法を教えていただけないでしょうか? どうかよろしくお願いいたします。

noname#52036
noname#52036
  • HTML
  • 回答数7
  • ありがとう数5

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

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

>ただ、画面サイズが小さい場合などはやはり、背景なので縦スクロールできず、下の部分まで見ることができませんでした。 所詮は、「背景」ですから、そういうものです。 小さい画面でも下のほうまで見せたいなら、画像そのものを小さくするとか(大きい画面ではもちろん下のほうは繰り返さないと画像がないので背景色が見える) あるいは画像全体を見せたいのであれば、ページ内に <a href="背景画像アドレス">背景全体が見れます</a> と、リンクをつけるのも一つの手です。 >現時点では、特に文章などをかんがえていないのですが、仮に画像として挿入した場合は横方向で中央配置かつ、縦方向がうえぴったりで下までスクロールしてみることは可能なのでしょうか? やろうと思えばできますが、本当にそんなことをする必要があるのでしょうか? imgで配置しても、背景として利用するなら、 先に回答した「内容の高さを指定する」方法と見た目はなんら変わらないのですが。 つまり、<img>で配置したとしても、「<img>の高さ」でスクロールが出るだけのことなので、「文章がなくても(ブロック要素の)高さを指定している」のと同じなわけです。 もし、「画面ぴったりの大きさに」という条件だと、高さの比率に合わせて「画像のサイズを変える」ことになるので、大きさによっては画像が荒くなります。

その他の回答 (6)

  • leap_day
  • ベストアンサー率60% (338/561)
回答No.7

こんにちは 背景画像だけのページというのもなんか変な感じがしますが・・・ <style type="text/css"><!-- body { margin:0px; height:***px; background-image:url("*******"); background-repeat:no-repeat; background-position:center top; } --></style> という感じで画像のheightをbody heightに指定すればできるのはできます(別にbodyの背景でなくてもdivの背景としてもできます) 画像でやるのであれば <style type="text/css"> body { margin:0px; } #back { margin-left:-800px; } #wrap { width:100%; text-indent: 50%; overflow:hidden; } </style> <div id="wrap"> <img src="*******" alt="****" id="back"> </div> でIE,OperaではできますがFirefoxではtext-indentでは100%内にしないとうまく機能しないのでできません(><) 画像のwidthが50%だったらtext-indent:50%;は効くんですけど・・・ (text-indent:50%)(img width:50%) : 計100%なのでできる (text-indent:50%)(img width:51%) : 計101%となりできない (text-indent:-50%)(img width:150%) : 計100%なのでできる (text-indent:-50%)(img width:151%) : 計101%となりできない つまり既に画像が1600pxでwidth 100%超えてるのでFirefoxではできません

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

>どうしても画像が中央表示にできませんでした・ 横方向は中央配置で縦方向は上ぴったりから始めたいなら(背景で) background-position: center top; …左上を起点に背景画像の位置指定(left、center、right)(top、center、bottom) で、できるはずですよ。 背景だけを設定したtest.htmlでも作って「center top」を色々変更して、表示確認してみては。 あと、上手くいかないときには、ソースがどうなっているか、ここに1ページ全部書き出して、あなたの書き方に間違いがないか確認してもらうのも必要だと思います。 http://www.htmq.com/style/index.shtml

noname#52036
質問者

お礼

ありがとうございます! background-position: center topを試してみたところ、上ぴったりから表示されました。一歩前進しました。一安心です。 ただ、画面サイズが小さい場合などはやはり、背景なので縦スクロールできず、下の部分まで見ることができませんでした。 現時点では、特に文章などをかんがえていないのですが、仮に画像として挿入した場合は横方向で中央配置かつ、縦方向がうえぴったりで下までスクロールしてみることは可能なのでしょうか? どうかよろしくお願いいたします。

  • auty
  • ベストアンサー率58% (284/486)
回答No.4

勘違いだったら申し訳ないのですが、    「縦スクロール」 というのは、Windowのサイズの変更とともに画像が縦に伸び縮みするということでしょうか。 >>>さきほど、画面サイズと背景写真について質問させていただいたものです。 ということで覗いてみたのですが、画像の大きさを変化させるのは、 ----------------------------------------------------------------------------    pipi_さんの書かれているJavaScript ---------------------------------------------------------------------------- が、背景ではありませんがなんとなく言われることにあっているような気がします。 そのままで動きますから是非1度実行してみてください。(画像の名前だけ替えればいいわけです。) 皆さんも言われているように背景は難しそうです。 その確認が第一歩ではないでしょうか。 ---------------------------------------------------------------------------- それから、ページの変更時の確認ですが、 ・ ファイルの保存。 ・ ブラウザの更新[ボタン]または再起動等。 は大丈夫でしょうか。

noname#52036
質問者

お礼

たびたびの解答ありがとうございます。 前回質問させていただきまして、今の自分の知識では到底無理だということがわかり、参考にした海外のサイト(そこでは背景として挿入されていました)のように、画像の横幅を1600pxにして、中央表示かつ横スクロールしないように表示させようと考えました。 auty様のおかげで横スクロールを消すというとこまでは来たのですが、上から下まで背景だけのhtmlでは画面サイズを小さくしたときに、どうしても表示させたい上の部分の画像まで見えなくなってしまいましたので、なんとか上下のスクロールだけは表示させれないものかと思い質問させていただきました。 ちなみに「縦スクロール」とは画像のリサイズはしないで、単純に上下させることを考えています。 ページの変更のときは必ずファイル保存し、確認しています。 本当にたびたびすみません・・・ もし、お気づきの点などあればどうかよろしくお願い申し上げます。

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

>縦スクロールが出てこないと、上下の画像が狭く見えたり、F11を押した時や大きい画面などでは上下で空白ができる、と考えているのですが・・・ 背景はあくまでも背景なので、(画面領域に表示されない)ページ内容がなければスクロールバーは出ません。 横スクロールバーが出るのも内容の問題ではないでしょうか? 縦スクロールバーがほしければ、内容を作りましょう。 例: <div style="width:100%; height:1000px; border:1px solid #ff0000;"> <p>縦方向に長く。</p> </div> width:100%;……横幅指定。表示領域の100% height:1000px;……高さ指定 border:1px solid #ff0000;……見て分かりやすいようにブロック要素の枠線指定 background-image: url("back.gif"); …背景画像指定 background-repeat: no-repeat; …繰り返しの指定 background-position: center center; …左上を起点に背景画像の位置指定(left、center、right)(top、center、bottom) background-attachment: fixed; …ページ内容と一緒にスクロールするかどうか

noname#52036
質問者

お礼

ありがとうございます。 特に背景でなくても大丈夫なんですが、画像を上下には目いっぱい見せて、かつ横は画面サイズのみ(横スクロールなし)で見せたいと考えています。 たとえば、背景でなく、普通に画像を挿入して横スクロールを表示させない方法はありますでしょうか? これだと画像は上下目いっぱいまで、画面サイズにかかわらず見れるとは思うのですが、どうしても横スクロールバーが・・・ お手数をおかけいたしますが、どうかよろしくお願いいたします。

noname#52036
質問者

補足

一応何度か試しては見たのですが、どうしても画像が中央表示にできませんでした・・・ 横スクロールはoverflow-xで消すことができたのですが・・・ すみません何度も・・・

  • auty
  • ベストアンサー率58% (284/486)
回答No.2

background-attachment: fixed scroll; で試してみてください。

noname#52036
質問者

お礼

ありがとうございます。 早速試してみたのですが、やはり縦スクロールは出てきませんでした・・・ 縦スクロールが出てこないと、上下の画像が狭く見えたり、F11を押した時や大きい画面などでは上下で空白ができる、と考えているのですが・・・ もしかしてそもそもこの考えが間違っているのでしょうか? できれば、空白が見えたり、上下に関しては画像がカットされないようにしたいのですが・・・ 何度ももうしわけございませんが、どうかよろしくお願いいたします。

  • auty
  • ベストアンサー率58% (284/486)
回答No.1

CSSを使って、 ---------------------------------------------------------- <style type="text/css"> <!-- body { background-image: url("back.gif"); background-repeat: no-repeat; background-position: center center; background-attachment: fixed; } --> </style> ---------------------------------------------------------- としてみてください。 "back.gif"は、変更してください。

noname#52036
質問者

お礼

ありがとうございます。 おかげ様で、横スクロールは消え、中央表示にもなったのですが・・・ 縦スクロールまで消えてしまいました・・・ 縦スクロールは残しておきたいのですが・・・ 背景でなくても画像を配置でも大丈夫です。 なんとかならないものでしょうか? ためしに、『ackground-position: center center;』の片方を消してみたのですが、何も起こらずでした・・・ どうかよろしくお願いいたします。

noname#52036
質問者

補足

すみません。 説明不足でした・・・できれば縦は通常のままで横だけを中央表示にできれば幸いです。 どうかよろしくお願いいたします。

関連するQ&A

  • Firefox 横スクロールバーを表示したい

    当方webサイトを制作しています。 大体完成しており、ブラウザチェックをしている段階なのですが 修正したい箇所がありまして、修正方法をどなたか教えていただけますでしょうか。 横幅を960pxで作ったのですが、よくブラウザのサイズを小さくしたときに横スクロールバーが表示されますよね。 ところがFirefoxで確認したところ、横スクロールバー(縦は出ます)が 表示されず、小さくしたら見えていない部分を表示する手段がありません。 960px以下のモニタのユーザへの対処法として、解像度960px以下の場合は(要はページが画面に収まりきらない場合です) 横スクロールバーで、見えていないところも表示できるようにしたいのです。 現状は以下の通りです。 ・bodyに幅は指定していません(ウィンドウのサイズを960px以上に大きくしたときでもセンターに表示させるため) ・cssで960pxのサイズ指定をしている箇所はあります。 ・IE6では横スクロールが表示されています。 ・html上にwidth960pxのimgを置いてみましたが解決にいたりませんでした。 webで調べてみましても、「スクロールバーを消したい」の情報は あるのですが、「表示させたい」の対処法をみつけることができませんでした。 対処法をご存知の方、どうかよろしくお願いいたします。

  • YouTubeに横スクロールバーが出てしまう FF

    Firefox最新版。WinXP。画面解像度1024*600。ブラウザ表示倍率100%。 今週のYouTube改変で、ブラウザに横スクロールバーが出るようになってしまいました。 ブラウザウィンドウ最大化しても全画面表示してもYouTube内でどういう画面状態にしても常に出続けます。画面の横幅が20pxほど足りないようです。 画面が縦600pxしかないので、横スクロールバーは非常に邪魔です。 ブラウザ表示倍率は下げたくないです。 何か回避方法はないでしょうか?

  • ブラウザのスクロールバーの長さを制御

    ブラウザのスクロールバーの制御をしたいのですが、 いい方法が見つかりません。 たとえば、縦の長さ800pxある画像を表示させたときに 500pxまではブラウザのスクロールバーを非表示にさせ、 500px以下になったときにはじめてスクロールバーが表示される形を再現したいです。 この時、例えばブラウザウィンドウの縦幅を480pxにした場合は 差分の20px分のみのスクロールバーが出てきてほしいのですが、 単純にjavascriptで判別させてoverflowの切り替えをしてしまうと、 800px分のスクロールバーが出てしまうのです。 ちなみに画像は背景としてではなく、あくまでも画像として配置したいと思っています。 何かいい方法があればご教授ください

    • 締切済み
    • CSS
  • tableで横スクロールバーが・・

    tableの高さがブラウザの表示範囲を超えると 少しだけ右の方に空白ができ、 横スクロールバーが出てきて醜い状態になってしまいます。 タグは、大まかにこのような感じで、 外部スタイルシートを適用させていて、 tableには枠線をつけています。 <body scroll="auto"> <table style="width:720px;" class="枠線、パディング、マージン等"> <tr> <td colspan="2" style="background-image:url("***.jpg(720x150pxの画像)"); width:720px;height:150px;"> <a href="リンク">リンク</a> </td> </tr> <td colspan="1" width="100%"> <!メニュー部分> </td> <td colspan="1"> <!本文部分> </td> </tr> <tr> <td> <!著作権表示> </td> </tr> </table> </body> 本文が少なければ、tableの高さがブラウザの表示範囲の中に収まるので 横スクロールバーは出ませんが、 収まらないときには横スクロールバーが出てしまいます。 横スクロールバーを出さないようにするにはどうすればよいのでしょうか? 分かりにくい箇所があればご指摘をお願いします。 回答をお待ちします。

    • ベストアンサー
    • CSS
  • 余分な縦スクロールバーが出てしまう

    CSSを外部ファイル、本文はXHTML1.0でページを作っています。 #headerと#containerで上下に分かれるデザインです。 #headerはwidth: 100%;で横いっぱいに伸びており、#containerは幅800pxでセンタリング、ドロップシャドウの背景画像がheight: 100%;で下いっぱいに伸びるようにしています。 #headerは上手くいっており問題はないのですが、#containerがどうしてもうまく行きません。 height: 100%;で背景画像は下まで伸びるのですが、本文がどんなに短くても、200px位?縦スクロールバーが必ず出てしまうのです。 本文が長くても、確実にブラウザに収まる程短くても結果は同じです。 (1920*1200のディスプレイで全画面表示しても同じ結果なので、余白が反映されている訳ではないと思います) 余分な縦スクロールバーが出てしまう原因には何がありますか? 確認ブラウザはSafari/3.2.1 Firefox/3.0.7です。 原因がお分かりになる方、ご教授お願い致します。

    • ベストアンサー
    • CSS
  • Flash配置で横スクロールバーを出さない方法が知りたい

    下記サイトなんですが、1300pxもあるFlashが配置してあるにもかかわらず横スクロールバーが出ていません。 http://www.brightonhotels.co.jp/tateshina/ 横は100%、高さはそのままのサイズで配置してあるようですが、横スクロールバーが出ないようにするにはどうしたらいいのでしょうか。 手元にあるFlashファイルを横100%で配置してもうまくいきませんでしたので、Flashファイル内で何かをしていると思うのですが…。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • 横スクロールバー表示時の切り抜き(ペイント)

    ペイントで横に長い画像を切り抜く方法についてです。 1画面に収まらないほど横に長い画像は、ペイントの下部に 横スクロールバーが表示されます。 これをスクロールさせて、やっと端まで画像を見られますが、 この画像を、横幅はほぼそのままで、縦幅だけ狭めて切り抜きたい という時、切り抜きの状態では、スクロールバーを横に移動させる ことができません。 縦であればホイールでなんとかなるのですが…。 切り抜き状態で横にスクロールさせるのは、仕様的に不可能なの でしょうか? もし可能でしたら、方法を教えてください。

  • 横スクロールバーが表示されてしまう

    ホームページを作成中なのですが、横幅の余白はあるのにのに横スクロールバーまで表示されてしまいます。 フレームを使用していて、そこにTABLEタグを入れるとどうやら必ず表示されるみたいです。html{overflow:hidden;}のタグを入れていますが、それでもだめみたいです。TABLEなしにすると横スクロールバーは表示されないのですが、デザイン上TABLEは使いたいのでカットは無理です。 解決方法が分かりません。どなたがアドバイスよろしくお願いします。HTML初心者なのでできれば分かりやすい説明をお願いします。 ちなみに使用しているブラウザはIE6です。

  • スクロールバーを出現させる方法

    目が悪いので画面を拡大してブラウザを見ることが多いのですが、ページによって下のスクロールバーが表示されない場合があります。 下のスクロールバーが表示されないとキーボードのカーソルキーで横に画面をスクロールさせないといけないのでとても面倒です。 このような場合に強制的にスクロールバーを出現させる方法があったら教えて下さい。 OSはXPでブラウザはFireFoxの最新版です。

  • html、スクロールバーを表示させない(横だけ)

    HTMLでフレームのスクロールバーを表示させないには <frame>、<iframe>タグの属性、scrolling="no"とすればよいのですが それでは縦のスクロールバーも横のスクロールバーも消えてしまいます。 自分は横のスクロールバーのみ消して縦のスクロールバーのみ残したいのですがどうすればいいでしょう? 補足:上下にのみ動かせるページを作りたい。ということ。 わかるかたどうかお願いいたします。 HTMLでムリでしたらJavaScritpなどでもかまいません(が、解説、もしくは解説ページを教えていただかないと自分はJavaScriptが打てませんので・・・よろしくお願い致します。)

専門家に質問してみよう