電子書籍の厳選無料作品が豊富!

CSSのレイアウトについてのアドバイスをお願い出来ましたらと
思います。m(_ _)m

添付画像の様なレイアウトがしたく、いろいろやってみましたが、
何時間かかっても上手く行かなくて。。

A(画像)、(B ○の部分がテキストでリスト)、(C ○の部分が
画像を三段重ね)、D(画像)という様に、float: left;で配置して
いき、

Bの○のテキストはリストで左頭揃えにしながら、
Bのブロックごとは右寄せで右にパディングで余白を取る。

Cの○の画像は左頭揃えにしながら三段重ね、
Cのブロックごとは左寄せでパディングはゼロにしたいと
いう部分で上手く行かずに悩んでいます。。


元から書かれた物を直すという作業の上で、
戸惑っています。

自分では下記の様にやってみて途中やり直しを繰り返し
して混乱して頭が止まってしまいました。。
よろしければ、アドバイスの方をお願い致します。m(_ _)m


☆ HTML

<div id="header">
<!-- A-->
<h1><img src="hogehoge.gif" alt="" width="175" height="64" /></h1>
<!-- /A-->

<p class="g_navi"><a href="@"><img src="hogehoge.gif" alt="" width="42" height="10" /></a><br>
<a href="@"><img src="hogehoge.gif" alt="" width="42" height="10" /></a><br>
<a href="@"><img src="hogehoge.gif" alt="" width="42" height="10" /></a>
</p>
<ul class="s_navi">
<li>テキスト</li>
<li>テキスト</li>
<li>テキスト</li>
</ul>

<!--D-->
Dの部分は省略。
<!--/D-->
</div>



☆CSS


#header {
margin: 0 10px 0;
padding: 28px 0 0;
width: 950px;
height: 102px;
position: relative;
line-height: 1;
}

#header h1{
float: left;
}

#header .g_navi{
margin: 8px 0 0;
padding: 0 32px 0 0;
float: left;
width: 270px;
height: 70px;
text-align: right;
}

#header .s_navi{
margin: 8px 0 0;
padding: 0 0 0;
float: left;
width: 238px;
height: 70px;
line-height: 1;
font-size: 1px;
}

#header .s_navi li{
margin: 0 0 10px;
}

------- 以下D部分は略 ---------

「助けてください。。 CSSのレイアウトに」の質問画像

A 回答 (2件)

文書構造で不明な点


・ID/class名からサブメニューだと思いますが、その親メニューはどれです?
 <ol>
  <li>
   <ol>
    <li></li>
    <li></li>
   </ol>
  </li>
 </ol>
なはずですが??

★floatは、floatは出現した位置が基準になるなど、色々面倒くさくなるので使わないほうが良いでしょう。
★headerでメインナ情報はナビゲーションだと思いますので、それを基準にしたブロックとして考える。
★サイズは、標準ではpadding辺の内側ですが、IEが互換モードで動作するとboreder辺までがサイズになります。標準モードで起動するように<DOCTYPE>を記述します。

・さすがにXHTMLはここ数年使ってませんので、HTML4.01strict+CSS2.1のサンプルです。
・サイズはリキッド(480px~1000px)にしてあります。スマホからワイドディスプレイまでOK
・class名は、HTML5の新しい要素( http://standards.mitsue.co.jp/resources/w3c/TR/h … )とその用途を参考にしてあります。<div class="header"></div>⇒<header></header>のように、簡単にHTMLに変更できるように。

(注意)タブは_に置換してあります。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
_<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
_<title>サンプル</title>
_<meta http-equiv="Content-Style-Type" content="text/css">
_<link rel="START" href="../index.html">
_<style type="text/css">
<!--
html,body{margin:0;padding:0;background-color:gray;
}
h1,h2,h3,h4,p{margin:0;line-height:1.6em;}
div.header,div.section,div.footer{
width: 98%;
margin:0 auto;
min-width:480px;max-width:1000px;
background-color:white;
}
div.header{
position: relative;
background-color:yellow;
}
div.header h1,div.header div.aside{
position:absolute;
width:18%;
left:0;top:0;
margin:0;
}
div.header div.aside{
right:0;left:auto;
}
div.header h1 img{
display:block;
width:100%;
height:auto;
}
div.header div.nav{
margin: 0 18%;
width: 64%;
min-height:90px;
position:relative;
background-color:fuchsia;
}
div.header div.nav ol,div.header div.nav li,div.header div.nav ul{
display:block;list-style:none;
margin:0;padding:0;
}
div.header div.nav li a{margin:5px;}
div.header div.nav ol li ul li{text-align:right;}
div.header div.nav ol li ul{
position:absolute;
top:0;right:0;
height:100%;
width:50%;
}
div.header div.nav ol li:hover{
background-color:lime;
}
div.header div.nav ol li+li ul{
z-index:-10;
}
div.header div.nav ol li:hover ul{
z-index:10;
background-color:lime;
}
-->
_</style>
</head>
<body>
_<div class="header">
__<h1><img src="./images/title.gif" alt="" width="175" height="64"></h1>
__<div class="nav">
___<ol>
____<li><a href="@"><img src="./images/hoge1.gif" alt="" width="42" height="10"></a></li>
____<li><a href="@"><img src="./images/hoge2.gif" alt="" width="42" height="10"></a>
_____<ul>
______<li><a href="">テキスト</a></li>
______<li><a href="">テキスト</a></li>
______<li><a href="">テキスト</a></li>
_____</ul>
____</li>
____<li><a href="@"><img src="./images/hoge3.gif" alt="" width="42" height="10"></a>
_____<ul>
______<li><a href="">テキスト</a></li>
______<li><a href="">テキスト</a></li>
______<li><a href="">テキスト</a></li>
______<li><a href="">テキスト</a></li>
_____</ul>
____</li>
___</ol>
__</div>
__<div class="aside">
___<p>Dの部分は省略</p>
__</div>
_</div>
_<div class="section">
__<h2>見出し</h2>
__<p>・・・</p>
_</div>
_<div class="footer">
__<h2>文書情報</h2>
__<dl class="documentHistry">
___<dt id="FIRST-PUBLISHED">First Published</dt>
___<dd>2012-08-10</dd>
__</dl>
__<address>&copy; ORUKA1951 2012 - 2016 All Rights Reserved mailto:*****</address>
_</div>
</body>
</html>
    • good
    • 0
この回答へのお礼

ありがとうございます。

とても参考になりました。m(_ _)m

どちらさまもベストアンサーとさせてください。

お礼日時:2013/06/12 20:26

HTML/CSS素人ですが。

。。
わかりにくくなるかと思ったので、フレームのみ作りました。
各サイズやマージンなどはご自身で指定していっていただければと思います。
画像を三段にしているところも意味合い的にリストの方がいいと思ったのでリストにしてます。
imgのdisplayをblockにしたので、ulを使わず、単に<img~ /><img~ />...と並べても表示は同じになります。
--HTML---------------
<div id="header">
<h1><img src="hogehoge.gif" alt="" width="175" height="64" title="A" /></h1>
<div class="g_navi"><ul>
<li>Bテキスト</li>
<li>Bテキスト</li>
<li>Bテキスト</li>
</ul></div>
<div class="s_navi"><ul>
<li><a href="@"><img src="hogehoge.gif" alt="" width="42" height="10" /></a></li>
<li><a href="@"><img src="hogehoge.gif" alt="" width="42" height="10" /></a></li>
<li><a href="@"><img src="hogehoge.gif" alt="" width="42" height="10" /></a></li>
</ul></div>
<div class="D">D部分</div>
</div>





--CSS-----------------
/* リセットCSS */
p, h1,ul {
margin: 0;
padding: 0;
}
ul {
list-style-type: none;
}
img {
vertical-align: text-bottom; /*画像の下の隙間を消す*/
}
/* リセットCSSここまで */





#header {
overflow: hidden; /* float要素の高さを、親要素に認識させる */
background: cornflowerblue;
}
h1 {
float: left;
background: lightpink;
}
.g_navi {
float: left;
background: khaki;
}
.s_navi {
float: left;
background: palegreen;
}
.s_navi img {
display: block; /* 小さい画像をリストにした際の隙間を削除 */
}
.D {
float: left;
}
    • good
    • 0
この回答へのお礼

ありがとうございます。

とても参考になりました。m(_ _)m

どちらさまもベストアンサーとさせてください。

お礼日時:2013/06/12 20:25

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