• ベストアンサー

エラスティックレイアウトがうまくいきません。

エラスティックレイアウトがうまくいきません。 横幅をemでサイズ指定しています。 うまくいかないのはIE6です。 ctrlキー + ホイールで文字サイズを小さくすると、 限りなく小さくなっていき、<img>タグで挿入してある画像(px指定)より 小さくなるとカラム落ちします。(当たり前ですが・・・) firefoxはmin-widthが指定できるので問題ありませんが、 IE6ではどう設定すればいいのかわかりません。 イメージはyahooみたいなエラスティックレイアウトです。 なにか良い方法があれば教えてください。 よろしくお願いします。

  • HTML
  • 回答数3
  • ありがとう数3

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

  • ベストアンサー
noname#66720
noname#66720
回答No.1

http://labs.unoh.net/2007/04/elastic-layout.html javascriptで実装できるようですね。 もし私がエラスティックレイアウトで同じようにimgで悩んだ場合、imgにはwidthとheightを指定しない方法を取ると思います。 その場合画像は、横幅に応じて縦横比を保ったまま縮小されていきます。

syo804haru
質問者

お礼

minmax.jsを利用することにしました。 便利なjavascriptっていっぱいあるんですね… 勉強不足でした。 助かりました。有難う御座いました。 ひとつ聞きたいのですが、 >もし私がエラスティックレイアウトで同じようにimgで悩んだ場合、 >imgにはwidthとheightを指定しない方法を取ると思います。 >その場合画像は、横幅に応じて縦横比を保ったまま縮小されていきます。 ってどういう事ですか?なにかjavascriptのライブラリを使うのですか? IE7やOperaみたいなページズーム機能をIE6、Firefoxで実装したいので、 画像の拡大縮小も課題なのですが、上記の方法をIE6、Firefoxで実装できますか? よろしくお願いします。

その他の回答 (2)

noname#66720
noname#66720
回答No.3

例えば <style type="text/css"> div { width:10em; } </style> <div> <img src="image.jpg" alt=""> </div> 画像の大きさは100×100で上記のような指定をしたとします。 そうすると、文字サイズを小さくすることでボックスの幅が画像より小さくなった場合にimgがボックスの幅に収まるように縮小されて表示されます。 imgにwidthやheightを指定した場合には使えないのですが、widthやheightは必須属性では無いため記述しなくても問題ありません。 >ページズーム機能をIE6、Firefoxで実装したい・・・ ちょっとした裏技ですが、画像がそんなに多くない場合であれば、imgに対してem指定でwidthやheigthを指定することで、文字サイズを変えた場合にズームのような表示にすることもできます。 ただ、Firefox3ではブラウザ側で文字のサイズとズームを切り替えられるようになっています。 ですが、もし実際に上記のようなem指定の方法で実装してしまうと、切り替えが実質機能しなくなるということは覚えておいたほうが良いかもしれません。 エラスティックレイアウトはある部分でユーザーが期待している動作と別の動作をしてしまうので、レイアウトに配慮しつつもユーザビリティも損なわないように気をつける必要があります。

syo804haru
質問者

お礼

なるほど… 丁寧に回答していただいて有難う御座います。 がんばって勉強します。

  • ran_2323
  • ベストアンサー率43% (32/73)
回答No.2

http://gyauza.egoism.jp/clip/archives/2007/04/ie6minwidthminheight/ ここのページに、いろいろ方法が載ってますよ(^^) 私だったら、javascriptでmin-widthを実装する方法をとるかな。

関連するQ&A

  • リキッドレイアウトについて疑問です。

    スマホ用のサイトと1本化もできるので、最近はリキッドレイアウトで組んでいるサイトも 多いですが画像を多用しているサイトの場合は向いていないような気がしています。 ウィンドウの幅によりコンテンツ枠も増減しますが、モニタのサイズや解像度によって 最初の見え方って違いますよね? 左カラム(サイドバー)が30%で右カラム(メインコンテンツ)が65%だとしてもあくまでも %指定なので画像は何pxで作成すればいいのか?と疑問になります。 自分の環境では、右カラムに画像を配置するには650pxでジャストだとしても他の 環境で見れば必ずしもジャストではないでしょうし、min-widthで650pxを指定すれば 問題ないですが、今度はスマホだとフィットしなくなります。 基本的に、テキストベースのサイトで画像は背景画像のみ使用しかつrepeat-xで 見栄えに差支えないものじゃない限りリキッドレイアウトできれいに見せるのは 無理なのかと思っているのですがいい方法ってあるんでしょうか? 仮にimgにwidth:100%としても作成したサイズより大きくなれば荒く見えますし overflow:hiddenにすると全てが見せれなくなってしまうので、どうすればいいのか 悩みどころです・・・

    • ベストアンサー
    • HTML
  • どう変更してもIE6だけCSSレイアウトが崩れてしまいます。

    CSSレイアウトで、サイトを作成していたのですが、 最近になってIE6で確認してみると、レイアウトが崩れまくっていました。。。 3カラムレイアウトなのですが、Firefox等他のブラウザではきちんと表示されるので、なぜかIE6だけ縦1列になってしまいます。。 こちらのサイトでもIE6はレイアウトが崩れやすいという情報がたくさんあり、そちらのアドバイスを参考にしながら1日かけてがんばってのですが、できませんでした。もう限界です(涙) 現在のCSSは、 * { margin:0; padding:0; } .wrapper { width: 740px; margin: 0 auto; } .header { width: 740px; } .main { width: 740 px; /* 両端ブロックとコンテンツを囲んでいるクラスです。 */ } .menu {display: inline; float: left; width: 205px; } .contents {display: inline; float: left; width: 385px; } .affiliate {display: inline; float: left; width: 150px; } .footer { clear: both; width: 740px; } というような状態です。 どなたかアドバイスいただけますと大変幸いです。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • CSSで画面サイズを縮小するとレイアウトが大きく崩れてしまう

    CSSとXHTMLで、左と右に分かれただけのデザインという少し変わったレイアウトで作ってみたのですが、画面サイズを変更(縮小)すると右側のBOXがすべて左側の下に回り込んでしまいます。 できればスクロールバーなどを出現させて、レイアウトが崩れないようにしたいと考えています。 色々いじくっていたらめちゃくちゃになってしまったのですが、一応CSSを掲載しておきます。 また、左側を○○pxで、右側を残りのサイズというようなwidthの指定の仕方ってあるのでしょうか? frameとかだと*で対応するみたいなんですが・・・ ひとまず、周り込を回避する方法が優先です。 どうかよろしくお願いいたします。 @charset "shift_jis"; body { margin: 0px; height: 100%; padding: 0px; font-size: 12px; line-height: 150%; } html { height: 100%; } img { border: none; vertical-align: bottom; } #left { background-color: #666666; width: 350px; float: left; min-height: 100%; height: 100%; } #right { height: 100%; padding: 35px 0 0 0; min-height: 100%; width: auto; margin: 0 0 0 350px; }

    • ベストアンサー
    • HTML
  • ファイヤーフォックスでカラム落ちします。

    下記サイトを作っているのですが、東京都世田谷区認可保育園という部分と画像を変える四つの画像が画面を縮小するとファイヤーフォックスでカラム落ちします。 下記をやってみても治りません。どうすれば治るのでしょうか? http://okwave.jp/qa/q3719369.html 初めまして。 FireFoxやsafariなどの正規表現に忠実なブラウザでは ────────────────────────── width(550px)+padding(50px)=実際に表示される横幅 ────────────────────────── となります。 つまり、#Aの横幅に対して#B+#Cの値の方が大きくなってしまっているので、結果として、収まらなかった#Cが下に追いやられてしまっている、という具合です。 width550pxがwidth(550px)+padding(50px)より小さくなってカラム落ちする。 対処法としては ────────────────────────── <div style="横幅を指定">ここにmargin <div style="余白を指定">内容物</div>ここにpadding </div> ────────────────────────── このように相性の悪いプロパティは、各要素に対して一つずつ指定する事で全てのブラウザに対応出来ます。 http://sample1.digi2.jp/kindergarten2/index.html

    • ベストアンサー
    • HTML
  • このsccを一つにまとめることはできますか?

    @media screen and (min-width: 500px) { * { font-size: 2em; } @media screen and (min-width: 500px) { p.p_1{ font-size:2em; } @media screen and (min-width: 500px) { th { font-size:2em; } このsccを一つにまとめることはできますか? ブラウザのデバッグ画面で見ると @media screen and (min-width: 500px) @media screen and (min-width: 500px) @media screen and (min-width: 500px) th { font-size: 2em; } になっています。

    • ベストアンサー
    • CSS
  • フロートを利用した2カラムレイアウト

    お世話になります。 HTML+CSSにてサイト制作をしております。IE6のバグだと思うのですが、フロートを利用した2カラムレイアウトの段組みの間の空き具合をうまく調整することができません。なぜでしょうか?? 形は、左右の2カラムで成り立っており、右半分に重要なコンテンツ部分(主にテキスト)、左半分にメニューをおいています。 【HTML】 <div id="wrapper"> <div id="right"> □□□□□□□□□□□□□□□□□□ □□□□□□□□□□□□□□□□□□(重要テキスト) </div> <div id="left"> □□□□□□□□□(メニュー) </div> </div> 【CSS】 #wrapper{ width:800px; background:url();←省略 } #right{ float:right; width:680px; } #left{ float:left; width:100px; } という感じです。それで、800px-(680px+100px)=20pxを左右の段組みの間に空きスペースとして確保したいのですが、IE6だとうまくいきません。 Firefox,safariなどでは、仕様通り左カラムは左に寄り、右カラムは右によるため、左右の段組みの間に20pxの空きが出るのですが、IE6だと左右の間にスペースはなく、かわりに右カラムの右(つまり、一番右)が空いてしまうのです。 floatを両方ともrightにして左カラムに右マージンorパディングを入れてみたのですが、今度はカラム落ちしてしまいます。 どうすれば、IE6で左右の間にスペースがある2段組みができるのでしょうか??なにか根本的に間違ってるのでしょうか?

    • ベストアンサー
    • HTML
  • CSSのリキッドレイアウトについて質問します。

    2列で左列がサイドバー,右列がコンテンツのリキッドレイアウトを考えています。 左列を固定幅にして,右列のmargin-leftに左列の横幅分の値を設定しています。 横幅が広い画面で見ると、一行が大変長くなります。 最近、横幅が1920の画面で確認すると、 大変読みにくいことに気づきました。 IE6では、min-width,max-widthが設定できないとあります。 IE6では、CSSでリキッドレイアウトを行なう場合、 横幅を調整する方法はないのでしょうか。 ※また、CSSを使ったリキッドレイアウトを実現している、 お勧めサイトがありましたら、教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • レイアウトが崩れてしまいました。

    初心者の素人です。 よろしくお願いいたします。 無料HP素材を使用してHP作成中です。 メインバナーをスライドショーに変更したらレイアウトが崩れました。 メインバナーの下に4カラムが入りこんでしまいます。 スマホ対応なのですがスマホで見ても同じようにメインバナーの下に4カラムが入り込んでいます。 ~~~css~~~ #mainBanner{ margin:30px auto; padding:0; width:100%; position:relative; line-height:0; } #mainBanner img{ max-width:100%; ← (ここで画像のサイズを指定したらPCはいけますがスマホで画面から画像が出てしまいます) height:auto; position: absolute; top: 0; left:0; z-index: 8; opacity: 0.0; } #mainBanner img.active { z-index: 10; opacity: 1.0; } #mainBanner img.last-active { z-index: 9; } /************************** /* グリッド **************************/ .gridWrapper{padding:0px; overflow: hidden; } * html .gridWrapper{height:1%;} .grid{ float:left; background:#2a1d12; } .grid h3{ padding:10px 5px; margin-bottom:10px; background:#000; font-weight:bold; text-align:center; } .grid p{ padding:5px 10px; text-align:left; } .grid p.img,.grid p.readmore{text-align:center;} /* グリッド共通 ベース:トップページ4カラム */ .grid{ float:left; width:220px; margin-left:20px; } ~~~html~~~ <!-- メイン画像 --> <div id="mainBanner"> <img src="main1.jpg" class="active"> <img src="main2.jpg"> </div> <!-- / メイン画像 --> <!-- 4カラム --> <section class="gridWrapper"> <article class="grid"> <h3>CALENDAR</h3> <p class="img"><img src="1.jpg" width="170" height="135" alt=""></p> <p><table class="calendar" border="0" cellpadding="2" cellspacing="1" bgcolor="#CCCCCC" width="150px"> ~~~~~~~~~~~ HPテンプレートはhttp://f-tpl.com/tpl_048/を使っています。 質問させていただくに際し、このタグを見ていただいてご理解いただけるかも不安です^^; スライドショーはきちんと動いています。 お教え願えましたら幸いです。 よろしくお願いいたします。

    • 締切済み
    • CSS
  • リキッドデザイン3カラム左端幅固定の個別スクロール

    現在、リキッドデザインで幅3カラムのレイアウトをしようとしています。 左端のみ幅を178pxに固定し、中央と右のブロックはそれぞれ残りの画面を二分割し、最低幅401pxで制作した上に、それぞれのカラムを個別にスクロールさせようと考えています。 以下のコーディングでFirefoxとChrome、Safariでは想定したレイアウトを概ね実現できたのですが(厳密には中央と右のサイズが微妙に異なっていて調整できていません)、IE9以下は全てレイアウトが崩れて表示されてしまいます。 IE6はともかくとしても、IE7以降で崩れずにレイアウトを完成させる方法は無いでしょうか。 さらに欲を言えば中央と右カラムを完全に二分割のサイズにできるとありがたいです。 (こちらはできればで結構ですが。。。) おわかりいただける方、お知恵をお借りできないでしょうか。 ご迷惑をおかけしますが、よろしくお願いいたします。 ------------html------------ <div id="wrap"> <div id="contents"> <div id="wall"> <div id="nav"> 左ブロック </div> <div id="main"> 中央ブロック </div> </div> <div id="sub"> 右ブロッック </div> </div> </div> ---------------------------- ------------css------------ #wrap{ width:100%; text-align:left; min-height: 100%; font-size: 100%; } #contents{ position:fixed; overflow:auto; width:100%; min-width:980px; height:100%; margin-top:60px; } #wall{ position:fixed; overflow:auto; width:60%; min-width:579px; height:100%; } #nav{ position:fixed; overflow:auto; left:0px; width:178px; height:100%; } #main{ width:100%; min-width:401px; height:100%; margin-left:178px; } #sub{ width:40%; min-width:401px; height:100%; margin-left:60%; } ----------------------------

    • ベストアンサー
    • CSS
  • フォントサイズでレイアウトがずれる?

    cssでページレイアウトをしているのですが、 外部cssでサイト全体のフォントサイズを13pxにした場合 body { font-size: 13px; } 同じ画像なのに(四角のボタン)下部分の1pxの底辺が表示されるものとされないものが出てきました。 HTMLの記述内容は以下の通りです。 <div class="menu"> <p><img src="/img/**1.png" alt="" width="180" height="33"></p> <p><img src="/img/**2.png" alt="" width="180" height="33"></p> <p><img src="/img/**3.png" alt="" width="180" height="33"></p> <p><img src="/img/**4.png" alt="" width="180" height="33"></p> </div> <p>にmargin、paddingなどは設定していません。 この場合、画像、css共に同じ条件であるはずなのに、3番目の画像だけ上記のような不具合がおこりました。 フォントサイズを14pxにした場合、問題なく表示されます。 firefoxで確認したところは13px,14px共に、きちんと表示されていました。 ちなみにブラウザはIE6です。 ブラウザのバグか何かでしょうか?? 申し訳ありませんが、どなたかご教授お願い致します。

    • ベストアンサー
    • HTML

専門家に質問してみよう