プロが教えるわが家の防犯対策術!

CSSのfloatとdivについて質問です。

下記のようにmainの中にlocal-navigationを配置したいのですがやり方が分からないのでご教授お願いします。

現在はlocal-navigationがfooterの上に表示されて自分の意図することが出来ていません。

sidebar-leftとsideba-rightはfooter部分まで伸びていて欲しいのです。

やりたいこと:
____________________________
|header-menu                      |
|___________________________|
|sidebar-left|     main     |sidebar-right |
|      |            |       |
|      |            |       |
|      |            |       |
|      |            |       |
|      |            |       |
|      |            |       |
|      |            |       |
|      |            |       |
|      |____________|       |
|       |local-navigation    |       |
|______|____________|_______|
|footer                         |
|___________________________|


現在の状況:

____________________________
|header-menu                      |
|___________________________|
|sidebar-left|     main     |sidebar-right |
|      |            |       |
|      |            |       |
|      |            |       |
|      |            |       |
|      |            |       |
|      |            |       |
|      |            |       |
|      |            |       |
|      |            |       |
|       |            |       |
|______|____________|_______|
|local-navigation                    |
|___________________________|
|footer                         |
|___________________________|



過去の質問:

「CSSでメイン部分が80%ぐらいに表示するには? http://oshiete.goo.ne.jp/qa/7728293.html 」

「CSSのbackground-imageについて http://oshiete.goo.ne.jp/qa/7728304.html 」

A 回答 (2件)

他の質問と合わせて、ごく簡単な例を挙げておきます。

HTML5でもっとも大事なことは、文書の構造化です。デザインのためのHTMLは記述しない・・これがHTMLを学ぶ上でもっとも大事なことです。
 下記に極めて標準的なHTMの雛形を作成します。HTML5で作成しておきます。実際は実用的なHTML4.01strictで作成してください。他のDTDは使わない!!
 このHTMLに対して、次の4つのデザインをスタイルシート【CSS2.1の範囲内】で設定してください。
(注意)HTMLには一切手を加えないこと。

[CSS1]永続的スタイルシート
 使用するフォント、日本語向けにpやhについては縦方向マージン0、line-height:1.6emを指定
 わかりやすいように、それぞれに背景色を指定しておく
  body:gray,header:yellow,section,white,section>section:silver,
  aside:aqua,aside:first-child:lime,footer:fuchsia,nav:teal
とする。
[CSS2]スクリーン用標準スタイルシート
・ウィンドウ幅の90%でかつ、最小640px~最大900pxでウィンドウ中央に表示、ウィンドウが900pxを超える場合は900px
・header幅いっぱい
・section内の最初のaside(本文と直接関係ない記事)はsection内の右側
・section内の二つ目のasideはsection内の左側
・section内のnavはsection最下段
・footerは全幅
[CSS3]スクリーン用代替スタイルシート/視覚弱者向け
・ウィンドウ幅の100%でかつ、最小640px~最大1000pxでウィンドウ中央に表示、ウィンドウが1000pxを超える場合は1000px
・header幅いっぱい
・section内の最初のaside(本文と直接関係ない記事)は表示しない
・section内の二つ目のasideはsection内の下側に枠つきで表示
・section内のnavはsection最下段
・footerは全幅
[CSS4]印刷用スタイルシート
・navは印刷しない
・section内の最初のaside(本文と直接関係ない記事)は印刷しない
・section内の二つ目のasideはsection内の下側に枠つきで印刷

<!doctype html>
<html>
<head>
_<meta charset="utf-8">
_<title>サンプル</title>
_<meta name="description" content="">
_<meta name="author" content="ORUKA1951">
<!--[if IE]>
_<script src="http://html5shiv.googlecode.com/svn/trunk/html5. …
_<script src="http://css3-mediaqueries-js.googlecode.com/svn/t …
<![endif]-->
<style media="screen">
<!--
-->
</style>
</head>
<body>
_<header>
__<h1 id="title">Your title</h1>
__<nav>
___<ul>
____<li><a href="#">Some</a></li>
____<li><a href="#">navigation</a></li>
____<li><a href="#">links</a></li>
___</ul>
__</nav>
_</header>
_<section>
__<h2>A smaller heading</h2>
__<p>
___CSSのfloatとdivについて質問です。
__</p>
__<p>
___下記のようにmainの中にlocal-navigationを配置したいのですがやり方が分からないのでご教授お願いします。
__</p>
__<p>
___現在はlocal-navigationがfooterの上に表示されて自分の意図することが出来ていません。
__</p>
__<figure class="main">
___<pre>┌──────────────┐
│header           │
│  ←------ nav -----→  |
├───┬──────┬───┤
|aside │main    │aside │
│   │      │   │
│   │      │   │
│   │      │   │
│   │      │   │
│   │      │   │
│   ├──────│   │
│   │←- nav --→│   │
├───┴──────┴───┤
│footer           │
└──────────────┘</pre>
__</figure>
__<p>
___sidebar-leftとsideba-rightはfooter部分まで伸びていて欲しいのです。
__</p>
__<section>
___<h3>A smaller heading</h3>
___<p>
___</p>
__</section>
__<nav>
___<p>前のページへ | ページトップ | 次のページ</p>
__</nav>
__<aside>
___<h3>Something aside</h3>
___<p>
____新着情報とか
___</p>
__</aside>
__<aside>
___<h3>Something aside</h3>
___<p>
____補足記事など
___</p>
__</aside>
_</section>
_<footer>
__<h3>A nice footer</h3>
_</footer>
</body>
</html>
    • good
    • 0
この回答へのお礼

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

自分が目指すところはレスポンシブWebのサイトなので、
考えた結果、
基本はfloatで構成して左上と左下を基準にしたズレにくいブロックだけをposition:absolute;で実現することにしました。

お礼日時:2012/10/03 15:00

clearfixの記述の仕方 - ホームページ作成ソフト - 教えて!goo (

http://oshiete.goo.ne.jp/qa/7726726.html )
 をご覧ください。

 ブロックを配置するためにfloatを使わなければ良いです。それが一番楽です。ナビゲーションをstatic以外の直近の親コンテナブロックの対して絶対配置し、他の兄弟だけはその分マージンをとっておけば良いです。右にしようが、左にしようが自由に出来ます。

 floatは記事中の挿絵の周りに本文を回り込ませるために、取っておきましょう。
    • good
    • 0
この回答へのお礼

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

絶対配置とはposition:absoluteを使えということでしょうか?

header, sidebar-left, main, sidebar-right, local-navigation, footerの6つの領域を左上を基準にして配置していこうと思います。
floatをposition: absolute; top:--px; left: --px;に全て切り替えますがこれについて何か問題があるかご教授ください。



参考:
div.section div.aside{
_position:absolute;top:10px;right:5px;
_width:34%;

お礼日時:2012/10/02 21:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!