• ベストアンサー

インラインフレームの装飾

下記のサイトのインラインフレームは画像で周りを4つの画像で装飾しているのですが、ソースを見るとテーブルで囲んでるようです。 http://www.pharm.kyoto-u.ac.jp/ これをCSSでやる方法はないのでしょうか? 同じような画像を作成したのでインラインフレームを装飾しようと思ったのですが、もっとCSSで簡単に装飾できないものかな?と思いました。 ご存知の方いらっしゃいましたらご教示ください。 よろしくお願いします。

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

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

  • ベストアンサー
回答No.4

こういうやり方もあります。 これが最もよく使われた方法、王道だと思います。 <div id="container"> <div id="container-top"> <div id="container-bottom"> <div id="container-left"> <div id="container-right"> <div id="box">ボックス</div> </div> </div> </div> </div> </div> #container-top { background-image: url(上端); } #container-bottom { bakcground-image: url(下段);         margin-top: *px; } #container-left { bakcground-image: url(左端);         margin-bottom: *px} #container-right { bakcground-image: url(右端);} これでたぶん行けると思います。 background-position、background-repeatを適宜付けてください。 idをつけずに#container div div div { background-image: * }などとしてもいいと思います。

keisuke1258
質問者

お礼

回答ありがとうございました。 先ほど実行したらうまく出来ました。

その他の回答 (3)

回答No.3

あるボックス(<iframe>でも<img>でも<div>でも、<span>でも)を囲む枠線をデザインする場合、 簡単さで言うとテーブルレイアウトにかなう物はありませんが、いくつかの条件が合えば、簡略化は望めます。 画像やフレームのように、ボックスの幅が固定であればピクセル単位で決め打ちできますから、<div>で上下を囲むことできっちりレイアウトが可能になります。 縦長のメニューやサイドバーなどでも、固定幅であれば同じ方法でデザインできます。 別途widthやheightなどを指定してください。 <div style="background-image:url(上端)"></div> <div style="background-image:url(左右)">ボックス</div> <div style="background-image:url(下端)"></div> レイアウトのためのタグ(<div>にせよ、<table>にせよ)が入るのは避けられません。 ----------- 上端、下端の<div>の代わりに、スタイルシートの:after、:beforeというのもあります。 IE7未対応。IE8対応。 Safari/Chrome、Opera、Firefoxはどのバージョンから対応しているかわかりませんが、最新版、最新版-1~2くらいは大丈夫です。 <div id="box">ボックス</div> #box:before{ content: url(上端画像); display: block; width: *px; height: *px; } #box:after{ content: url(下端画像); display: block; width: *px; height: *px; } #box { background-image: url(左右画像); background-repeat: repeat-y; width: *px; } ----------- ブラウザに限定的であれば、border-imageというのもあります。 http://www.htmq.com/css3/border-image.shtml これであれば、 <div style="border-image:*">ボックス</div> と書くだけで実現できますし、 幅が可変でも対応できます。 --------------- 私は2つめの方法に、IE7対策としてコンディショナルコメントを使っています。 http://home.wi-wi.jp/ (メニュー、ニュース部分) <!--[if lte ie 7]><div style="background-image:url(上端)"></div><![endif]--> <div id="box">ボックス</div> <!--[if lte ie 7]><div style="background-image:url(下端)"></div><![endif]--> が、むしろ1番目の方法(コンディショナルコメントを付けず、:before :afterも使わない)か、テーブルレイアウトの方がスマートだと思います。

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

 No.1です。No.1で示した方法では、IE9以前のIEとOperaではうまく機能しないので、画像を使った方法を示しておきます。(他のfirefox,safari,googleChromeでは表示されます)  この場合、ウィンドウ巾に合わせて伸縮するリキッドデザインでは変形するため、固定デザインが良いでしょう。 <div class="section">  <div class="messageBox">   <h1><img>見出し</h1>   <div>    iframeなり、リストなりの記事が入る。   </div>   <p class="footer"><img>脚注</p>  </div> </div>  のようにマークアップすることになるでしょう。  その上で、スタイルシートで、 div.section div.message{ 巾や位置を指定 position:relative; } div.section div.message h1, div.section div.messageBox p{ margin:0; line-height: } div.section div.messageBox h1{ font-size; text-align:center; } div.section div.messageBox p{ font-size; } div.section div.message h1 img, div.section div.messageBox p img{ position:absolute; display:block; width:100%; } で良いでしょう。borderは省略してありますから、画像の枠線と合うように指定してください。  HTML本来の趣旨からは余分な画像が入ることになりますが、IEの普及率から致し方ないでしょう。

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

私は、原則inlineframeは使いませんが、デザイン自体は簡単にできると思います。 特に紹介されたサイトのようにframeの中にframe、そして埋め込まれているHTMLも無茶苦茶だし・・ ★Another HTML-lint gateway ( http://openlab.ring.gr.jp/k16/htmllint/htmllint.html ) 過去互換性を重んじるなら画像、そうでなければCSS3のlinear-gradient,border-radiusを使う。 {HTML}class名は、HTML5の新しい要素名( http://standards.mitsue.co.jp/resources/w3c/TR/html5-diff/#new-elements )とその目的を参考にしてあります。 <div class="article"> _<div class="header"> __<h1>見出し</h1> _</div> _<div class="section column3"> __<div> ___<h2>過去</h2> ___<ul> ____<li>一月</li> ____<li>二月</li> ____<li>三月</li> ____<li>四月</li> ___</ul> __</div> __<div> ___<h2>現代</h2> ___<ul> ____<li>五月</li> ____<li>六月</li> ____<li>七月</li> ___</ul> ___<h2>未来</h2> ___<ul> ____<li>八月</li> ____<li>九月</li> ____<li>十月</li> ___</ul> __</div> _</div> _<div class="footer"> __<p>詳しくは・・・</p> _</div> </div>

keisuke1258
質問者

お礼

回答ありがとうございました。

関連するQ&A

  • テーブルの装飾

    cssでテーブルに縦線のみ、つけたいのですが、うまくいきません。記述方法を教えてください。その他、テーブルのいろんな装飾バリエーションが紹介されているサイトを教えてください。

    • ベストアンサー
    • HTML
  • インラインフレームかjavascriptかで迷ってます

    閲覧ありがとうございます。既出の質問でしたらすみません。   ウェブサイトを作成していますが、まだ初心者でわからない事があったので質問させていただきます。   リンク画像を複数並べて、クリックするとそれの大きい画像が横に表示されるという機能をつけたいと思っています。 参考にさせてもらおうと、その機能があるいくつかのサイトのソースを見ると、インラインフレームを使っているものとjavascriptを使っているものがありました。   どちらかを使いたいのですが、インラインフレームは使わない方がいいというのをどこかのサイトで見ましたし、 人によってはインラインフレームもしくはjabascriptが嫌いという方もいるようなのですが、どうすればいいでしょうか?

    • ベストアンサー
    • HTML
  • インラインフレームの作り方

    ドリームウィーバーを使ってHP作成をしています。 今、インラインフレームを作りたくてこちらのサイト http://wakabano.cool.ne.jp/dream/layout/frame/manual/man_04.html を見て試してみたのですがよくわからず失敗してしまいました。 ソースの中のパスやフレーム領域名もよくわかりません。 今作っているサイトはテーブルを使って作っているのですが テーブルの中にフレームを入れる事自体出来ないのでしょうか? 初心者のため質問もわかりにくいと思いますがよろしくおねがいします。

  • インラインフレームを使ったページのレイアウト

    センス向上の為、色々テンプレート配布サイトさんを見回っていた所、数か所のサイト様で、テーブルとインラインフレームを組み合わせたテンプレートを配布されている所を見付けました。 まずインラインフレームは枠線、境界線(表現、これで合っているでしょうか?デフォルトの状態だと、枠線を消しても窪んだ様な感じになっていますよね?それの事です)共に表示されておらず、 スクロールバーもない為に、スクロールはされないものの、インラインフレームの大きさが読み込むページによって変容していました。 また、あるサイト様ではインラインフレームの箇所に画像を使用しており、画像内の文字のみ変わる様な仕組みになっていました。 参考にして自分なりの物を作ろうと思ったのですが、思った様に行きませんでした。 width、heightは100%としましたが、インラインフレームの大きさは変わらず、frameborderだけでは境界線も消えず、マージンも指定しましたが、表示位置も変わりませんでした。 勿論とほほさんやTAG indexさんで勉強はして、その通りに打ち込んだつもりですが効果なし。 マージンに関して言えば、一応、少しだけは変わりましたが、明らかに指定した数値とは違う位置に表示されました。(指定は150px、表示位置は50pxにも満たない様な位置でした) ネットサーフィンで見かけたサイト様でしたので、その数か所のサイト様がどこから見かけたものか忘れてしまい、URLやソースを控えておく事もしていなかったので、 そのテンプレート配布者様がどの様なタグでその様にしたかが分かりません。 見かけたサイト様の様に表示させるにはどうしたらいいのでしょうか? それとも諦めてフレーム辺りで落ち着くべきでしょうか?

  • インラインフレームを使って、lightboxを表示させたい

    メインページ上にインラインフレームを使用して、写真のサムネイルを並べています。 このサムネイルをクリックするとlightboxで表示されるようにしたいのですが、上手くいきません。 メイン画像に表示されず、インラインフレーム内で、lightboxが動作せず、画像がリンクするだけです。 メインのHTML(main.html)のheadに下記の記述をし、 【main.html】 <link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" /> <script src="js/prototype.js" type="text/javascript"></script> <script src="js/scriptaculous.js?load=effects,builder" type="text/javascript"></script> <script src="js/lightbox.js" type="text/javascript"></script> インラインフレーム内(in.html)のサムネイルには下記を記述しています。 【in.html】 <a href="images/001.jpg" rel="lightbox" title="テスト"><img src="images/p01.jpg" border="0"></a> ちなみに、上記のタグをメインのHTMLに記述すると、ちゃんとlightboxは動きます。 インラインフレーム内だと、動かないのです。 ソースのどの部分に手を加えると、メインページ上に、表示されるようになるのでしょうか。 アドバイスお願い致します。

    • ベストアンサー
    • HTML
  • インラインフレームの半透明化

    ここのぺーじを www.geocities.jp/eijispace/2011/1231.html 参考にしたのですが、 うまく半透明化できません。 インラインフレームのソース <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="content-style-type" content="text/css"> <title>疑似インラインフレーム</title> <style type="text/css"> *.logbox { border: solid 1px #808080; width: 240px; height: 120px; padding: 0.5em; overflow: hidden; } q { color: #008000; } </style> </head> <body> <h1>疑似インラインフレームを作ってみよう!</h1> <div class="logbox"> <p>OLY OLY OLY OH ! YELY YELY YELY YEAH !</p> </div> </body> </html> 半透明化のプログラムをここのどこに記述すればできますか? ご教示お願いします。

    • ベストアンサー
    • CSS
  • インラインフレームについて。

    インラインフレームについて。 インラインフレームは掲載するサイトの位置を決め固定することはできないのでしょうか? http://girlschannel.net/topics/144767/ ↑このサイトの上部に 2. 匿名 2014/05/30(金) 10:19:40 [通報] スコティッシュフォールド という書き込みがあります。 そのあたりをもう1つのホームページに表示させたいのですがスクロールしたものがでてきたり位置を調節できません。 ちなみに作成中のタグです。 <iframe src=" http://girlschannel.net/topics/144767/" width="?" height=?"px" frameborder="?">猫</iframe> ?は解らない所です。 他にその部分だけを表示させる方法はあるかもしれませんが解らないのでこの方法にしました。 あれば良ければ教えて頂きたいです。 どなたかご指導頂きたいです。 よかったらご意見ください。

    • ベストアンサー
    • HTML
  • インラインフレームの操作について

    こんにちは。早速、質問させてもらいます。 ページの構成が、左側にサムネイル画像を10枚程度置いて 右側にインラインフレームをfloatして置いています。 で、サムネイルをクリックしてインラインに画像を表示させたいんです。 target='xxxで表示させることはできるんですが それだと画像ファイルに直接リンクすることになるので、 ページの統一感が出せません。 そこで、JavaScriptでCSSと併用させて画像を表示させようと思い、検索して window.frame['myframe'].loaction.href="xxx.jpg"; としてインラインの中に画像表示させることはできましたが、 これにcssを併用させる方法がわかりません。 何かヒントでもあれば、教えてください。 よろしく、お願いします。

  • インラインフレーム切り替え&アンカーについて

    インラインフレームを切り替える際、 iframeにnameを設定して、aタグにtargetで指定すれば切り替わる ことまでは突き止めたのですが、 切り替えをしたい画像ボタンと、 iframeが離れているので、 まず、iframeがある部分までアンカーで飛び、 かつ、iframe内も同時に切り替える方法を知りたいのですが、 もしご存知の方がいらっしゃったらご教示いただければ幸いです。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • インラインフレーム外のFlashでできたボタンから、インラインフレーム内を変更。

    どうしても出来ないです。 Flash用のテキストのターゲットをインラインフレームの名前に指定しても、別のウィンドウで開かれてしまいます。 Flashじゃ無くて、ただの画像やテキストにリンクを貼ってターゲットをインラインフレームの名前に指定すると出来るんですけどFlashは何度試しても出来ません。 どなたか力を貸して下さい。お願いします。 http://www.flash-bucks.com/flash/menu/m08/index.html ↑これが使用しているFlash(ボタンの素材) http://www.tagindex.com/tool/iframe.html ↑これが使用しているインラインフレームを作成したサイト 参考になればと思います。