1番上の3つのフレームだけセンターに配置したいです

このQ&Aのポイント
  • 現在のコードでは、フレームを配置していますが、1番上の3つのフレームだけを中央に配置したいと思っています。
  • どのように入力すれば効果的な方法で配置することができるでしょうか?
  • 素人なので、よく分かりません。お手数ですが、アドバイスをお願いいたします。
回答を見る
  • ベストアンサー

1番上の3つのフレームだけセンターに配置したいです

すみません。現在下記のようなコードでフレームを配置しています。1番上の3つのフレームだけセンターに配置したいと思っているのですが、下記のコードでもっとも効果的な方法はどのように入力すればよろしいのでしょうか?簡単な事なのかも知れませんが素人なのでよくわかりません。すみませんがよろしくお願いいたします。 <style type="text/css"><!-- .outer-frame { width:1000px; overflow: hidden; } .inner-frame { width: 150px; height: 150px; overflow: hidden; border: 1px solid; color: #a9a9a9; padding: 3px; float: left; margin: 5px;} div.inner-frame:hover {border-color: #ff0000;} --></style>&nbsp; <div class="outer-frame"> <div class="inner-frame"></div> <div class="inner-frame"></div> <div class="inner-frame"></div> ↑ この3つだけ中央に表示したいです。 <div class="outer-frame"> <div class="inner-frame"></div> <div class="inner-frame"></div> <div class="inner-frame"></div> <div class="inner-frame"></div> <div class="outer-frame"> <div class="inner-frame"></div> <div class="inner-frame"></div> <div class="inner-frame"></div> <div class="inner-frame"></div> </div> &nbsp;

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

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

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

そのようなHTMLの描き方は誤りですが・・ <div class="test">  <div></div>  <div></div>  <div></div>  <div></div> ・・・ </div> であったとしても、 div.test{width:1000px;text-align:center;} div.test div{ width: 150px; height: 150px; overflow: hidden; border: 1px solid; color: #a9a9a9; padding: 3px; display:inline-block; } div.test div+div+div+div{display:block;float:left;} ですむはずです。 ★スタイルシートを使用する最大の目的は「構造とプレゼンテーションの分離( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/intro/intro.html#h-2.4.1 )」です。【必読】  divの目的は『id属性及び class属性と併用することで、文書に構造を付加するため( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#h-7.5.4 )』です。outer-frameとかinner-frameは、HTML4.01で強く否定されている「ページレイアウトの目的で表を用いる。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/present/styles.html#h-14.1 )」と発想は変わりません!!。 次のようにマークアップされるのじゃないですか?? <div class="nav"><!-- class名にnavを使用してナビゲーションだとマークアップする --> _<ol> __<li> ___<ol> ____<li><a href="">1</a></li> ____<li><a href="">2</a></li> ____<li><a href="">3</a></li> ___</ol> _ </li> __<li><a href="">4</a></li> __<li><a href="">5</a></li> __<li><a href="">6</a></li> __<li><a href="">7</a></li> __<li><a href="">8</a></li> __<li><a href="">9</a></li> __<li><a href="">10</a></li> _</ol> </div> このように、HTMLはひたすら、文書構造だけをマークアップします。 そして、 div.nav{ min-width:480px;max-width:1000px;/* ただし最小470px(スマホ)、最大1000px */ margin:0 auto;/*左右中央 */ } div.nav ol{/* ナビゲーションブロック内のolは */ list-style:none;/* リストじゃないよ */width:100%;/* ディスプレイの幅一杯 */ display:block;/* ブロックだよ */ padding:0; position:relative; margin:0; } div.nav ol li ol{ width:100%; text-align:center; min-height:100px; } div.nav ol li{ width: 100%; margin: 0; } div.nav ol li ol li, div.nav ol li+li{ width:150px;height:150px; float:left; margin:5px; padding:3px; text-align:left; } div.nav ol li ol li{ float:none; display:inline-block; } div.nav:after{content:"";display:block;clear:left;} HTMLの改定も楽ですし、デザインも独立しているから自由に変更できる。 もちろん、 <div class="nav"><!-- class名にnavを使用してナビゲーションだとマークアップする --> _<ol> __<li><a href="">1</a></li> __<li><a href="">2</a></li> __<li><a href="">3</a></li> __<li><a href="">4</a></li> __<li><a href="">5</a></li> __<li><a href="">6</a></li> __<li><a href="">7</a></li> __<li><a href="">8</a></li> __<li><a href="">9</a></li> __<li><a href="">10</a></li> _</ol> </div> でしたら、 div.nav{ min-width:480px;max-width:1000px;/* ただし最小470px(スマホ)、最大1000px */ margin:0 auto;/*左右中央 */ } div.nav ol{/* ナビゲーションブロック内のolは */ list-style:none;/* リストじゃないよ */width:100%;/* ディスプレイの幅一杯 */ display:block;/* ブロックだよ */ padding:0; position:relative; margin:0; text-align:center; } div.nav ol li{display:inline;} div.nav ol li a{ width:150px;height:150px; display:inline-block; margin:5px; } div.nav ol li+li+li:after{content:"";display:block;clear:left;} div.nav ol li+li+li+li:after{content:none;} div.nav ol li+li+li+li a{ display:block; float:left; } div.nav:after{content:"";display:block;clear:left;} div.nav ol li a{background-color:aqua;} でよい。

crywithjoy2014
質問者

お礼

お返事が遅くなってすみません。せっかく答えていただいたのに私のレベルではあまりにも難解な為に思考停止になっていました。時間を見つけて書いていただいたのを参考にしてなんとか作ってみたいと思います。ありがとうございました。

その他の回答 (1)

noname#206842
noname#206842
回答No.1

<div class="outer-frame" style="textalign:center;"> <div class="inner-frame"></div> <div class="inner-frame"></div> <div class="inner-frame"></div> </div> <div class="outer-frame"> <div class="inner-frame"></div> <div class="inner-frame"></div> <div class="inner-frame"></div> <div class="inner-frame"></div> </div> <div class="outer-frame"> <div class="inner-frame"></div> <div class="inner-frame"></div> <div class="inner-frame"></div> <div class="inner-frame"></div> </div> ********************************************** レイアウトにテーブルを利用することは、あまりお勧めできませんが、 入れ子が、正しく記述されていないだけでは?・・・ レイアウトとして使用する場合は、idを使った方が、いいのでは?・・・ (classよりもidの方が、優先力がある) 実際には、CSS部分は、別途CSSに、classとして記述します。

crywithjoy2014
質問者

お礼

すみません。せっかく書いていただいたのに、自分のWordpressにコピペして結果が出ないと、もうお手上げ状態のレベルでして…基礎がわかっていないと厳しいですね。もうちょっと時間をかけて勉強してみます。お返事が遅くなってしまってすみませんでした。ありがとうございました。

関連するQ&A

  • ブログを3カラム右右から左右両サイドにしたい。

    現在CSSは下記のようになっています。 どこをいじれば右右から左右両サイドにできるのか教えていただけたら嬉しいです。 宜しくお願い致します。 /** 03. Layout - レイアウトの設定 */ /* ----------------------------------------------- */ body { margin: 0; padding: 0; min-width: 960px; text-align: center; background-image: none; background-repeat: repeat; background-position: 50% top; } div#containerWrap { width: 960px; margin: 0 auto 5px; } div#container {} div#content { padding: 10px 0; border-width: 1px; border-style: solid; } div#main , div#sub , div#extra { overflow: hidden; } div#main { float: left; display: inline; width: 538px; } div#main div.column-inner { padding: 0 10px 10px; } div#sub { float: left; display: inline; width: 210px; } div#sub div.column-inner { padding: 5px 10px 0; overflow: hidden; border-width: 1px; border-style: none none none solid; } div#extra { float: left; display: inline; width: 210px; } div#extra div.column-inner { padding: 5px 10px 20px; overflow: hidden; border-width: 1px; border-style: none none none solid; }

    • ベストアンサー
    • HTML
  • float解除直後のborderつき文章の配置方法

    floatを使って複雑にボックスを配置し、その一番下にborderで囲った文章を配置したいのですが、 Coment4で設定したborderと文章が、borderはPhot1のすぐ下に表示され、 文章はphot4の下から表示されてしまいます。 phot1と同じ左隅からborderで囲まれた文章を配置するにはどうしたらいいのでしょうか? <style type="text/css"> #phot1{ width: 750px; height: 50px; /*ここからはgoo質問用(実際は入れない)*/ background-color: #48637e; color: #fff; } #left{ float: left; width: 450px; margin: 10px; /*↓goo質問用*/ border: 1px solid #39f; } #Coment1{ font-size: 16px; color: #fff; line-height: 110%; /*↓goo質問用*/ width: 400px; height: 60px; background-color: #8493bb ; } #Coment2{ font-size: 12px; color: #000; /*↓goo質問用*/ width: 300px; height: 60px; background-color: #777; } #phot2{ padding-left: 60px; background: url("sample.jpg") 0 0 no-repeat; float: left; margin: 0;/*バグ?余白を削除*/ /*↓goo質問用*/ background-color: #ff0; width: 140px; } #phot3{ float: left; overflow: hidden; /*↓goo質問用*/ border: 1px solid #e37615 ; width: 200px; } #right{ float: left; width: 270px; margin-top: 10px; overflow: hidden; /*↓goo質問用*/ border: 1px solid #7c4b15; } #Coment3{ float: left; font-size: 12px; width: 180px; /*↓goo質問用*/ border: 1px solid #000; height: 140px; } #phot4{ float: left; overflow: hidden; margin: 5px; width: 70px; /*↓goo質問用*/ border: 1px solid #ff3cb9; } #phot4 ul{ display: inline; text-align: center; line-height: 18px; } #Coment4{ /*ここからはgoo質問用(実際は入れない)*/ border: 10px solid #f00; width: 750px; height: 50px; } </style> ---------------------- <div id="phot1">画像1</div> <div id="kono_div_hituyoukana"> <div id="left"> <div id="Coment1">coment1coment1coment1</div> <div id="Coment2">coment2coment2</div> <div id="phot2">横50px背景画像</div> <div id="phot3">画像3</div> </div> <div id="right"> <div id="Coment3">coment3coment3coment3coment<wbr />  3coment3coment3coment3comen<wbr />  t3coment3coment3</div> <div id="phot4"><ul><li><img src="sample.jpg" width="65" height="80">画像4</li></ul></div> </div></div> <div id="Coment4">Coment4Coment4</div>

    • ベストアンサー
    • HTML
  • まとめブログにあるようなスクロール型のフレーム

    まとめブログにあるようなスクロール型のフレームについて 下記の画像のようなスクロール型のフレームはどうすればつくれるのでしょうか? 自分で探してみたところ、RSSリーダーはライブドアの”ブログロール”のようですが、フレームの構成がわかりません。 自分では下記のようなHTML構成にしてみたのですが・・・ ---------------------------------- ■HTML <div style="width:450px;height:100px;overflow:auto;background-color:#FFFFFF;scrollbar-arrow-color:#000;scrollbar-base-color:#ccc;border-top-style:groove;border-left-style:outset;border-bottom-style:groove"> ココにライブドアのブログロール </div> ---------------------------------- 左右での分割が出来ずに困っています。 どうか宜しくお願いします。

  • cssで擬似フレームについて

    はじめて質問させていただく、CSS初心者のものです。 下記のdivタグを画面中央寄せにする方法はあるのでしょうか? HTMLとCSSは下記のように書いています。 HTML <body> <div id="header"> (width="800" height="180" のflashファイルを入れています) </div> <div id="main">  ( width="700"のコンテンツを作りスクロールさせていま)  </div> <div id="footer">テキストを一行入れています</div> </body> ___________________ css html{ height:100%; overflow:hidden; } body{ height:100%; width:100%; margin:0px auto; background-color: #000000; }   #header{ position: absolute; height: 180px; width: 800px; overflow: hidden; top: 0px; }  #main{ overflow: auto; position: absolute; width: 800px; top: 180px; bottom: 20px; background-color: #FFFFFF; } #footer{ position: absolute; width: 800px; bottom: 0px; font-family: "Courier New", Courier, mono; font-size: medium; font-style: italic; color: #00FF33; height: 20px; background-color: #000000; overflow: hidden; }  このような感じなのですがなにかいい方法があればご教授お願いいたします。

    • ベストアンサー
    • HTML
  • テーブルの形に沿って画像を作り、貼り付けたら見るブラウザによって余白が生じる。

    現在、角丸テーブルを使ってWebページを作っておりまして 角丸部分の形に沿って画像をつくり、貼り付けているのですが、保存しアップしてみると IEでは自分が作ったように見れるのにOperaとFireFoxでは上部分に余白が生じます。 どのようにしたら、余白を無くせるでしょうか? テーブル部分とその部分のタグはこのようになっています <div align="center"> <div style="width:750"> <div class="kado"> <div class="kado1">-</div> <div class="kado2">-</div> <div class="kado3">-</div> <div class="kado4">-</div></div> <div class="kado5"> <table width="750" border="0" cellspacing="0" cellpadding="0" summary="TitleTable"> <tr valign="top" style="position:relative; top:-4;"> <td width="5" colspan="4"> <img src="./img/TitleSpace-Left.png" width="5" height="41" alt="TitleSpace"></td> <td width="183"> <img src="./img/Title2.png" width="183" height="41" alt="Title"></td> <td width="557"> <img src="./img/TitleSpace.png" width="557" height="41" alt="Title" ></td> <td width="5"> <img src="./img/TitleSpace-Right.png" width="5" height="41" alt="TitleSpace"></td></tr> </table> <table width="750" border="0" cellspacing="0" cellpadding="0" summary="MenuTable"> <tr style="position:relative; top:-4;"> <td width="33"> <a href="index.htm" target="_self"><img src="./img/HomeIcon.png" width="33" height="25" border="0" alt="ReturnHome"> </a> </td> <td><br></td> </tr> </table> </div> <div class="kado"> <div class="kado4">-</div> <div class="kado3">-</div> <div class="kado2">-</div> <div class="kado1">-</div> </div> </div> </div> 外部読み込みでこの角丸にするためのCSSもいれてます <!-- .kado { background: ./img/wall.png; } .kado1 { margin: 0 5px;height:1px;overflow: hidden; background-color:#fff; } .kado2 { margin: 0 3px;height:1px;overflow: hidden; background-color:#fff; } .kado3 { margin: 0 2px;height:1px;overflow: hidden; background-color:#fff; } .kado4 { margin: 0 1px;height:1px;overflow: hidden; background-color:#fff; } .kado5 { margin:0px; padding:0px; background-color:#fff; } --> おそらく何かがおかしいとは思うのですが、よくわかりません。 下らない質問だとは思いますが、回答の程お願いします。 そのWebページのURIも乗っけておきます。 http://wing2.jp/~movie_village/index2.htm

    • ベストアンサー
    • CSS
  • CSSで擬似的にフレームを作りたい

    CSSのoverflow:scrollを利用した、 フレームのように一部分をスクロールできるページを考えております。 画面左側をメニューにするには <body> <div class="menu"></div> <div class="content"></div> </body> のようなHTMLに *{margin:0px;padding:0px;} html{height:100%;} body{height:100%;} .menu{height:100%;float:left;width:100px;overflow:scroll;} .content{height:100%;margin:0 0 0 100px;overflow:scroll;} のようなスタイルシートという形で可能ですが、 上側をメニューにするにはどのようにすれば良いでしょうか?

    • ベストアンサー
    • HTML
  • 指定時間でバーを100%にする

    <div style="width:800px;border:solid 1px blue;"><div id="line" style="background-color:blue;width:0;overflow:hidden;height:1em;">バーの代わり</div></div> document.getElementById('line').style.width を徐々に伸ばして指定ミリ秒で100%にしたいのですが、なかなかできません、指定時間で100%に伸びるような動作はjavascriptではできないような気がしてきました。 何か方法はありますでしょうか?やっぱり無理なんでしょうか

  • Firefoxでheight:100%がきかない?

    ソースは以下のとおりです。 IEでは#container内のDIV要素は全てheight:100%で表示されるのですが、Firefoxでは、高さ:100%がききません。 Firefoxでもページの下まで表示されるようにしたいと思います。 よろしくお願いいたします。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-type" content="text/html; charset=UTF-8" /> <title>サンプル</title> <style type="text/css"> <!-- /*全体の設定*/ * { margin: 0px; padding: 0px; font-size: 12px; font-family:"MS Pゴシック", Osaka, "ヒラギノ角ゴ Pro W3"; font-weight: normal; line-height: 150%; color: #000; } /*ページ全体の設定*/ html,body { height:100%; } body { background-color: #FFF; } /*カラムの設定・IE6のハック*/ #wrapper { width: 1000px; float:left; height: 100%; min-height:100%; margin: 0px 0px 0px 0px; overflow:hidden; _overflow: show; background-color:#FF0000; } body > #wrapper { height:auto; } /*ヘッダの設定*/ #header { width: 1000px; height: 123px; clear: both; } /*メインコンテンツの設定*/ #container { width: 1000px; clear: both; height: 100%; min-height:100%; margin: 0px 0px 0px 0px; overflow:hidden; _overflow: show; background-color:#00FF00; } /*左カラム外側(2カラム内包)*/ #container_left01 { width: 732px; float:left; height: 100%; min-height:100%; margin: 0px 0px 0px 0px; overflow:hidden; _overflow: show; } /*左カラム(左側)*/ #container_left02 { width: 268px; float:left; height: 100%; min-height:100%; margin: 0px 0px 0px 0px; overflow:hidden; _overflow: show; } /*左カラム(右側)*/ #container_left03 { width: 463px; float: right; border-left-width: 1px; border-left-style: solid; border-left-color: #000000; height: 100%; min-height: 100%; margin: 0px 0px 0px 0px; overflow:hidden; _overflow: show; background-color:#FFFF00; } /*右カラム*/ #container_right01 { width: 267px; float:left; border-left-width: 1px; border-left-style: solid; border-left-color: #000000; height: 100%; min-height:100%; margin: 0px 0px 0px 0px; overflow:hidden; _overflow: show; } --> </style> </head> <body> <div id="wrapper"> <div id="header"> <h1>あああ</h1> </div> <div id="container"> <div id="container_left01"> <div id="container_left02">あああ</div> <div id="container_left03">あああ</div> </div> <div id="container_right01">あああ</div> </div> </div> </body> </html>

  • 縦型 レスポンシブ対応 多階層プルダウンウンリスト

    www.oct.ac.jp こちらの専門学校と同じ体裁のサイトを作りたいです。 左は固定(可変でも可)、右は可変 にしたい。 <HTML> <div class="content"> <div class="frame-left"> <div class="aaa"> <ul class="nav"> プルダウンリスト </ul> </div> </div> <div class="frame-right"> メイン記事内容 </div> </div><!--.content--> <CSS> ここでつまずきました。 .content{ display: -webkit-flex; display: flex;} .frame-left{ width:20%; } .frame-right{ width:80%; } .aaa { overflow: hidden; width: 750px; height: 300px; margin: 0 auto; padding: 0; box-sizing: border-box; display: flex; } .nav { width: 150px; margin: 0; padding: 0; } .nav li { position: relative; width: 150px; height: 40px; } .nav > li { border-bottom: none; } .nav li:last-child { border-bottom: none; } .nav li:hover > ul > li { border-bottom: none; } .nav li > ul > li:last-child { border-bottom: none; } .nav li a { display: block; width: 150px; height: 40px; color: #fff; font-size: 14px; line-height: 2.8; padding: 0 5px; background: #9fb7d4; border-bottom: 1px solid #eee; box-sizing: border-box; text-decoration: none; transition: 0.5s; } .nav > li:hover > a {/*layer-1*/ color: orange; background: #afc6e2; transition: 0.5s; } .nav > li li:hover > a {/*layer-2*/ color: olive; background: #afc6e2; } .nav li:hover > ul > li { overflow: visible; top: -40px; left: 110px; height: 40px; } .nav li ul li { overflow: hidden; height: 0; left: 110px; list-style: none; transition: 0.2s; } .nav li ul li a { background: #9fb7d4; transition: 0.5s; } .nav li ul:before { position: absolute; content: ""; top: 14px; left: 140px; border: 5px solid transparent; border-left: 5px solid #fff; } 1)これだと2階層目が上から下までの全幅にならない 2)画面を縮小すると、プルダウンメニューがはみ出す width:auto; などにしてみましたが、上手くいきませんでした。 やり方を教えていただきたく、よろしくお願い致します。 ※できればCSSだけでなんとかしたいですが、無理ならJavaScriptや jQueryなどを使って実現したいです。

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

    サイトを作るにあたって、画面を二分割にしようと思っていますが、どうにも作る事が出来ません。 サイト様を見ても分からない上に、とりあえず解説通りに実行しても良く分からない事になる。・・そんな状態がかれこれもう4ヶ月になります。 もうサイト自体を諦めようか・・と思いましたが、最後にここで質問をして諦めるかどうかを決めようと思っています。 そんな私が恥を忍んでお願いをします。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html lang="ja"> <!--made by Web Design Templates http://wdt.pekori.jp/--> <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"> <!-- body{ margin: 0; font-size: 10pt;/*全体のフォントサイズ*/ } a{ color: #212122;/*リンクの色*/ text-decoration: none; } .leline{/*裏側の細線の設定*/ position: absolute; z-index: 1 top: 0; left: 100px; width: 10px; height: 100%; border-left: solid 1px #ABABAC;/*色*/ } .leline2{/*裏側の薄色部分と点線枠の設定*/ position: absolute; z-index: 1; top: 0; left: 120px; width: 130px;/*幅*/ height: 100%; border-left: dotted 1px #ABABAC;/*枠の色*/ border-right: dotted 1px #ABABAC; background-color: #FBFBFC;/*背景色*/ } .main{/*メニュー全体の位置と幅を設定*/ position: absolute; z-index: 2; top: 25px; left: 60px; width: 240px; } h1{/*SiteTitle部分の設定*/ font-size: 12pt; font-family: "Verdana"; font-weight: normal; letter-spacing: 0.2em;/*文字間隔*/ text-align: center; width: 220px; margin: 10px 10px 40px 10px; padding: 5px 15px 5px 15px; border: solid 1px #696969; background-color: #FFFFFF;/*背景色*/ } .menu{/*メニューの設定*/ margin: 10px;/*メニューごとの間隔*/ padding: 5px; border: solid 1px #696969;/*枠の色*/ background-color: #FFFFFF;/*背景色*/ font-family: Verdana; font-size: 10pt; } .text{/*「一言」部分*/ margin: 20px 10px 10px 10px; padding: 5px; border: solid 1px #696969; background-color: #FFFFFF; font-family: Verdana; font-size: 9pt; } .bottom{/*アドレス部分*/ margin: 40px 10px 10px 10px; padding: 5px; border: solid 1px #696969; background-color: #FFFFFF; font-family: Verdana; font-size: 7pt; text-align: center; } --> </style> </head> <body> <div class="leline"></div> <div class="leline2"></div> <div class="main"> <h1>Site Title</h1> <div class="menu">■ <a href="#">What's New</a></div> <div class="menu">■ Sitemap</div> <div class="menu"><span style="color: #AA4548">■</span> Text <span style="font-size: 8pt">- 12/13</span></div> <div class="menu">■ Photo</div> <div class="menu">■ Bookmark</div> <div class="text"> [一言スペース]<br> <br><br><br> </div> <div class="bottom">Since 2001.12.10 // E-mail</div> </div> </body> </html> ↑これに既にフレームを付けた状態のHTMLを切実に待っています。 これをインターネットで表示すると、http://wdt.pekori.jp/template/top/007/007_gray.html←の様になります。

専門家に質問してみよう