1ページ内のコンテンツをタブメニューで切り替えたい

このQ&Aのポイント
  • 1ページ内のコンテンツをタブメニューで切り替える方法について困っています。
  • 参考URLを元に1ページ内のコンテンツの切り替えを試行錯誤しましたが、どのように記述すれば良いかわかりません。
  • floatではz-indexが使えないため、positionを使用してレイアウトしていますが、上手くいきません。
回答を見る
  • ベストアンサー

1ページ内のコンテンツをタブメニューで切り替えたい。

 こんばんは、以下のURLを参考に1ページ内のコンテンツを切り替えようと試行錯誤したのですが、メニューをdivでくくってしているため、どのように記述したらよいかわからず困っています。 参考URL http://builder.japan.zdnet.com/news/story/0,3800079086,20387833,00.htm  左のメニューで右のメインコンテンツのレイヤーを切り替えられたいと思い作ったページです。実際に表示したい部分はコメントアウトしています。 floatでは、z-indexが使えないので無理やり、positionでレイアウトしていますが、よろしくおねがいします。 http://study.vs.land.to/index.html

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

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

IE6でjavascriptをつかうんだったら、結局全部javascriptでやっても 同じような気がします。 とはいえ、今回の件はこんな感じのことでしょうか? <style> #menu_set{float:left;} #menu_set div{ background-Color:lime; border:10px outset #666666; height:60px; line-height:60px; text-align:center; width:120px; } #menu_set div a:hover{border:10px inset #666666;} #contents_t{background-Color:white;} #contents_r{background-Color:red;} #contents_b{background-Color:blue;} #contents_y{background-Color:yellow;} #contents_t,#contents_r,#contents_b,#contents_y{ position:absolute; margin-left:140px; border:10px outset #666666; height:300px; width:440px; z-index:1; } #contents_t:target,#contents_r:target,#contents_b:target,#contents_y:target{z-index:2;} </style> <div id="menu_set"> <div id="menu1"> <a href="#contents_t">TOP</a> </div> <div id="menu2"> <a href="#contents_r">RED</a> </div> <div id="menu3"> <a href="#contents_b">BULE</a> </div> <div id="menu4"> <a href="#contents_y">YELLOW</a> </div> </div> <div id="contents_t"> test1 </div> <div id="contents_r"> test2 </div> <div id="contents_b"> test3 </div> <div id="contents_y"> test4 </div>

rodem2009
質問者

お礼

ありがとうございます。思った通りのイメージでした。上手く、ローカルでは、書き換えて表示できたので、アップロードしてみたいと思います。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

ちなみにIE6では:target非対応のようですが、IE6を 捨てる勇気はありますか?

rodem2009
質問者

お礼

ご意見ありがとうございます。捨てる勇気はありませんが、学ぶ意欲はあります。 javascriptとcssを駆使して、IE6で表現できる別の方法も今後、模索して行きたいと考えますが、今は、:targetを使用しての記述の仕方を知りたいです。

関連するQ&A

  • ブラウザいっぱいに表示されるページが作成できません。

    ブラウザいっぱいに表示されるページを作成しようとしているのですが、上手くいきません。 3カラムのサイトで、左側メニュー、真ん中コンテンツ、右側メニューという感じにしようと思っています。 ブラウザのサイズに合わせて真ん中のコンテンツだけが伸び縮みするようにし、左側メニュー、右側メニューは固定したいと思っています。 イメージとしてはGIGAZINEのような感じです。 http://gigazine.net/ ―HTMLソース <div id="contents"> contents </div> <div id="right"> right menu </div> <div id="left"> left menu </div> ―CSS #contents { float: right; } #right { float: right; } #left { float: left; } しかし、真ん中コンテンツは最小サイズは指定しても、最大サイズを指定することができないので、長い文章を書くとその分だけ広がってしまい、結果的に他のメニューが回り込みできなくなって下に移動してしまいます。 position:absolute;を使えば、好きな場所に配置することができるので、これを実現できるのですが、個人的にposition:absolute;はあまり良くないと聞いたことがあります。実際はどうなのでしょうか? また、GIGAZINEのソースを見ていると、position:absolute;ではなく、position:relative;で相対的に配置しております。 今まで横幅が固定されたサイトしか作ってこなかったので、少し難しいです。アドバイスをお願いします。

  • CSSレイアウトの2カラム左メニューでコンテンツを先にHTMLに記述できる方法をおしえてください。

    趣味でHPを作成しております。 一般的なCSSレイアウト2カラム左メニューにしたいのですが、 HTML部分で左メニューよりコンテンツを先に記述し、 CSSで左メニューで右にコンテンツがくるようにしたいです。 現在のCSSは * { margin:0; padding:0; } .wrapper { width: 750px; margin: 0 auto; } .header { width: 750px; height: 100%; } .main { width: 750px; } .menu { float: left; width: 200px; } .contents { float: left; width: 550px; } .footer { clear: both; width: 750px; height: 100%; } .menu ul { list-style: none; } このような記述です。 つづきましてHTML部分は <body> <div class="wrapper"> <div class="header"> ヘッダー部分 </div> <div class="main"> <div class="contents"> コンテンツ部分 </div> <div class="menu">  メニュー部分 </div> </div> <div class="footer"> フッター部分 </div> </div> </body> このような感じです。 しかしこれだとHTML部分はコンテンツが先にきておりますが、 メニューが右になってしまいます。 これをHTML部分を変えずにCSSでメニューを左に配置する方法はありますでしょうか? 1週間くらい試行錯誤したのですが、できませんでした。 お詳しい方教えてください。

    • ベストアンサー
    • HTML
  • CSS初心者 コンテンツ高さに合わせたメニュー領域の背景色

    CSS初心者です。 Win IE6 環境で制作しています。 「メニュー」部分(右側)と「コンテンツ部分」(左側)とに分けて2段組で外部CSSでのページレイアウトに挑戦しているのですが、なんとかテーブルでのレイアウトを全部外して、形にはなったのですが、表題のようにコンテンツの高さに合わせて、メニュー領域の背景色を付けることが出来ません・・・。 CSSは .contents { width:770px; text-align:center; } (全体のコンテンツ領域) .contents-left { width:550px; float: left; text-align:center; } (←コンテンツ部分) .contents-right { width:200px; vertical-align:100%; } (←メニュー部分) .footer { width:770px; text-align:center; clear: both; } (フッター) とし、 メニューを囲んでいるDiv要素には .menu_box { background-image:url(img/menuback.gif) ; width:197px; vertical-align:100%; } としています。 いといろと試行錯誤していて「vertical-align:100%;」または「vertical-align:bottom;」などを付けてみましたが、ダメでした。 教えてください。よろしくお願いします。

    • ベストアンサー
    • CSS
  • 参考URLでページの借り方

    メニューのコンテンツを作りたいのですが、 参考URLでページを借りる。と此処で言われたのですが、 どうやって借りれるんですが?? 具体的に教えて下さい

  • IE6で動かないコンテンツ

    教えてください。 http://chikusa-eetoko.jp/ ホームページをアップしましたが IE6で div「field」内のコンテンツのみ、まるで positionプロパティをかけたように固定されて動きません。 --------------------- <div id="container"> <!-- コンテンツエリア --> <div id="page"> <div id="header"> <!-- コンテンツ -->・・・・・動く </div><!-- /#header --> <div id="field"> <div id="main"> <!-- コンテンツ -->・・・・・スライドしない </div><!-- /#main --> <div id="second"> <!-- コンテンツ -->・・・・・スライドしない </div><!-- /#second --> <div id="shot"> <!-- コンテンツ -->・・・・・スライドしない </div><!-- /#shot --> <div class="next"><a href="news/index.html"><img src="img/next-navy.gif" width="90" height="22" alt="次ページへ"></a></div>・・・・・動く </div><!-- /#field --> </div><!-- /#page --> </div><!-- /#container --> --------------------- ヘッダーと次へのボタンまでは field 内コンテンツの高さを保ったまま空でスライドします。 どうかご教授ください。よろしくお願いします

  • perlで3カラムにしたい (css)

    perlでcgiのアンケートのページを作っていますが、ページの最上部をヘッダー、ページの両端にメニューや広告、中央にコンテンツを配置する3カラム(三段組み)、最下部をフッターにしたいと考えています。 ページ幅 755pxでセンタリング、両端のメニュー、コンテンツともに幅固定で、以下のようなcssファイルを作りましたが、cgiのページを見ると、cssファイルの設定がうまく反映されません。 どうすれば良いのか、ぜひ御指導、アドバイス頂けると助かります。 m(_ _)m 当方初心者のため、もし以下のcssファイルの書き方に間違えがありましたら、ご指摘ください。 よろしくお願い致します。 ----------------------------- <HTML> <BODY> <div id="wrapper"> <div id="header"> ヘッダー部分 </div> <div id="main"> <div id="menu"> メニュー部分 </div> <div id="contents"> コンテンツ部分 </div> <div id="affiriate"> アフィリエイト部分 </div> </div> <div id="footer"> フッター部分 </div> * { margin: 0; padding: 0; } #wrapper { width: 755px; margin: 0 auto; /* 幅固定(755px)でセンタリングします。*/ } #header { width: 755px; height: 50px; } #main { width: 755px; /* 両端ブロックとコンテンツを囲んでいるセレクタです。*/ } #menu { float: left; width: 150px; /* floatに、width 指定は必須です。*/ } #contents { float: left; width: 505px; #affiliate { float: left; width: 150px; } #footer { clear: both; /* float をクリアしています。*/ width: 755px; height: 50px; } #menu ul { list-style: none; } </div> </BODY> </HTML>

    • ベストアンサー
    • CSS
  • コンテンツの高さに合わせた縦線を引きたい

    コンテンツ部分の高さに合わせた縦線を引きたいのですが、どうも上手く実現する 方法が思い浮かびません。 コンテンツは表示するページによって高さが異なります。 CSSを利用することは何ら問題ありませんが、JavaScriptでwindow.load()イベントなどで 記述するのはちょっと避けたいです。 あくまでレイアウトということで・・・。 今縦線はこんな感じで作られてます。 #splitter {width:0px; height:485px;   border:solid 2px #e5ecf9;overflow:hidden;   border-top:none; border-bottom:none;   background:#e5ecf9; float:left;   margin-right:10px} <div id="splitter"></div> divだと無理なんでしょうか・・・? ご教示下さい。

  • HPをクリック時に指定箇所に飛ばす

    ペライチの縦長サイトを作成しています。 そのサイトのURLをクリックした際に、ページ内の特定の高さに自動的に表示させる方法を探しています。 ページ内のコンテンツにて一つ目の括り方を<div class="base">、二番目のコンテンツを<div class="info">という形で、メニューをクリックするとそれぞれindex.html#base、index.html#infoという風に翔ぶようにしています。 そのサイトに初めて訪れる際に、index.htmlをクリックした人が、表示する段階で<div claas="info">の箇所にスクロールがいっているようにしたいのですが、どのようにすればいいのでしょうか。 分かりづらい説明で申し訳ございませんが、ご教授いただけますと幸いです。 どうぞよろしくお願いいたします。

    • 締切済み
    • CSS
  • レイアウトが崩れます

    汚いソースで失礼します。 メニューとコンテンツとサブメニューがありますが この3つの高さを保つにはどうしたらいんでしょうか? コンテンツ部分の高さが長いと メニューとサブメニューの高さは短いままで ダサい感じなんです。 なんとご説明したらいいのやら(汗 コンテンツ部分が長くてもメニューとサブメニューの高さを自動に設定させるようにするには、どうしたら良いのでしょうか? ご教授願います HTMLのソース+CSSです↓ <html> <body> <div class="wrapper"> <div class="header"> ヘッダーになります<br> </div> <div class="main"> <div class="menu"> menu<br> menu<br> menu<br> menu<br> menu<br> menu<br> </div> <div class="contents"> コンテンツになります<br> コンテンツになります<br> コンテンツになります<br> コンテンツになります<br> </div> <div class="submenu"> サブメニューはこちらです<br> サブメニューはこちらです<br> </div> </div> <div class="footer"> フッター<br> </div> </div> </body> </html> CSS .wrapper { width: 900px; margin: 0 auto; line-height: 1.5; } /* メイン*/ .main { width: 900px; } /* ヘッダ*/ .header { width: 900px; height: 200px; background-color: #66FFFF; background:url(img/top2.jpg) ; } /* Menu*/ .menu { width: 150px; float: left; background-color: #FFFF99; } /*コンテンツの設定*/ .contents { float: left; width: 600px; background-color: white; } /*SubMenuの設定*/ .submenu { float: left; width: 150px; height: 300px background-color: #66FF66; } /* 下の設定 */ .footer { clear: both; width: 900px; border-top: 1px dotted gray; height: 20px; text-align: center; font-size:0.7em; background-color:black; }

    • ベストアンサー
    • HTML
  • 最新情報10件を、mainコンテンツに読み込みたい

    <トップページ構成> =========================== |header                | =========================== |MENU |contants1         | |     |               | |     |===================| |     |contents2         | |     |               | =========================== のようなレイアウト構成で、ページを作成しております。 この時「contents2のdivブロック は、ニュース(最新情報)を表示する」ブロックにしたいのです。  参考:http://www.edia.co.jp/  (エディア様のニュースブロックみたいにしたいのです。) <今なんとなくつかめている内容> ・iframeではない。 ・エディア様の場合、http://www.edia.co.jp/news/ という別ページのニュース一覧から10件を抜粋し表示している。  また、ニュースページの記事一つ一つ(日付単位の記事)が、divブロック? <質問> エディア様のような、ニュースページに記述されている最新の10個のdivブロックを抜粋し、 トップページのcontents2に、最新情報10件を表示するにはどのようにすればいいのでしょうか? JQueryとかの利用によるものなのでしょうか? 仕組み等を解説してくれているページは、ないでしょうか? ご教授よろしくお願いします。

    • ベストアンサー
    • HTML

専門家に質問してみよう